From f93fb14a12b40cde579cef0f84af819ec6a2b77d Mon Sep 17 00:00:00 2001 From: linuxhan <1148634848@qq.com> Date: Thu, 11 Oct 2018 22:31:30 +0800 Subject: [PATCH 01/31] =?UTF-8?q?=E4=BF=AE=E5=A4=8DSAL=E6=A1=86=E6=9E=B6?= =?UTF-8?q?=E4=B8=8BAT=E8=AE=BE=E5=A4=87UDP=E9=80=9A=E8=AE=AF=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=8E=A5=E6=94=B6=E5=88=B0=E6=95=B0=E6=8D=AE=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/net/at/at_socket/at_socket.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/net/at/at_socket/at_socket.c b/components/net/at/at_socket/at_socket.c index 6f12c1d22a..ffca0a5478 100644 --- a/components/net/at/at_socket/at_socket.c +++ b/components/net/at/at_socket/at_socket.c @@ -791,6 +791,8 @@ int at_sendto(int socket, const void *data, size_t size, int flags, const struct goto __exit; } sock->state = AT_SOCKET_CONNECT; + at_dev_ops->at_set_event_cb(AT_SOCKET_EVT_RECV, at_recv_notice_cb); + at_dev_ops->at_set_event_cb(AT_SOCKET_EVT_CLOSED, at_closed_notice_cb); } if ((len = at_dev_ops->at_send(sock->socket, (char *) data, size, sock->type)) < 0) From b6968d2999b4e6613508d5c497ed900e771559ce Mon Sep 17 00:00:00 2001 From: linuxhan <1148634848@qq.com> Date: Thu, 11 Oct 2018 22:41:13 +0800 Subject: [PATCH 02/31] Update at_socket.c --- components/net/at/at_socket/at_socket.c | 1 + 1 file changed, 1 insertion(+) diff --git a/components/net/at/at_socket/at_socket.c b/components/net/at/at_socket/at_socket.c index ffca0a5478..a6d0b5ccad 100644 --- a/components/net/at/at_socket/at_socket.c +++ b/components/net/at/at_socket/at_socket.c @@ -791,6 +791,7 @@ int at_sendto(int socket, const void *data, size_t size, int flags, const struct goto __exit; } sock->state = AT_SOCKET_CONNECT; + /* set AT socket receive data callback function */ at_dev_ops->at_set_event_cb(AT_SOCKET_EVT_RECV, at_recv_notice_cb); at_dev_ops->at_set_event_cb(AT_SOCKET_EVT_CLOSED, at_closed_notice_cb); } From 8431c056350aed7f234a5e463a3e786b2c7ac66a Mon Sep 17 00:00:00 2001 From: zylx Date: Sat, 13 Oct 2018 10:18:10 +0800 Subject: [PATCH 03/31] [dfs] fix ioctl getflag/setflag issue. --- components/dfs/src/dfs_file.c | 2 +- components/dfs/src/dfs_posix.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/dfs/src/dfs_file.c b/components/dfs/src/dfs_file.c index c437b43829..76cf419c0a 100644 --- a/components/dfs/src/dfs_file.c +++ b/components/dfs/src/dfs_file.c @@ -189,7 +189,7 @@ int dfs_file_ioctl(struct dfs_fd *fd, int cmd, void *args) int mask = O_NONBLOCK | O_APPEND; flags &= mask; - fd->flags &= mask; + fd->flags &= ~mask; fd->flags |= flags; } return 0; diff --git a/components/dfs/src/dfs_posix.c b/components/dfs/src/dfs_posix.c index 3d863c4f98..898488a2aa 100644 --- a/components/dfs/src/dfs_posix.c +++ b/components/dfs/src/dfs_posix.c @@ -455,7 +455,7 @@ int fcntl(int fildes, int cmd, ...) ret = -1; } - return 0; + return ret; } RTM_EXPORT(fcntl); From 9064b28c2a7503a96fe69adcf55f604a7d25b5de Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Sun, 14 Oct 2018 19:28:18 +0800 Subject: [PATCH 04/31] [license] Change license to Apache. --- components/cplusplus/Lock.h | 18 ++------------- components/cplusplus/Mail.h | 18 ++------------- components/cplusplus/Mutex.cpp | 8 +++++++ components/cplusplus/Mutex.h | 18 ++------------- components/cplusplus/Queue.h | 18 ++------------- components/cplusplus/Semaphore.cpp | 8 +++++++ components/cplusplus/Semaphore.h | 18 ++------------- components/cplusplus/Thread.cpp | 8 +++++++ components/cplusplus/Thread.h | 18 ++------------- components/cplusplus/crt.cpp | 22 ++++-------------- components/cplusplus/crt.h | 22 ++++-------------- components/cplusplus/crt_init.c | 22 ++++-------------- components/finsh/cmd.c | 23 ++----------------- components/finsh/finsh.h | 17 ++------------ components/finsh/finsh_api.h | 17 ++------------ components/finsh/finsh_compiler.c | 23 ++----------------- components/finsh/finsh_error.c | 23 ++----------------- components/finsh/finsh_error.h | 23 ++----------------- components/finsh/finsh_heap.c | 23 ++----------------- components/finsh/finsh_heap.h | 23 ++----------------- components/finsh/finsh_init.c | 23 ++----------------- components/finsh/finsh_node.c | 23 ++----------------- components/finsh/finsh_node.h | 23 ++----------------- components/finsh/finsh_ops.c | 23 ++----------------- components/finsh/finsh_ops.h | 23 ++----------------- components/finsh/finsh_parser.c | 23 ++----------------- components/finsh/finsh_parser.h | 23 ++----------------- components/finsh/finsh_token.c | 23 ++----------------- components/finsh/finsh_token.h | 23 ++----------------- components/finsh/finsh_var.c | 23 ++----------------- components/finsh/finsh_var.h | 23 ++----------------- components/finsh/finsh_vm.c | 23 ++----------------- components/finsh/finsh_vm.h | 23 ++----------------- components/finsh/msh.c | 23 ++----------------- components/finsh/msh.h | 23 ++----------------- components/finsh/msh_cmd.c | 23 ++----------------- components/finsh/msh_file.c | 23 ++----------------- components/finsh/shell.c | 23 ++----------------- components/finsh/shell.h | 23 ++----------------- components/finsh/symbol.c | 23 ++----------------- components/libc/aio/posix_aio.c | 18 ++------------- components/libc/aio/posix_aio.h | 18 ++------------- components/libc/compilers/armlibc/dirent.h | 8 +++++++ components/libc/compilers/armlibc/fcntl.h | 8 +++++++ components/libc/compilers/armlibc/libc.c | 20 ++-------------- components/libc/compilers/armlibc/libc.h | 20 ++-------------- components/libc/compilers/armlibc/libc_syms.c | 8 +++++++ components/libc/compilers/armlibc/mem_std.c | 10 ++------ components/libc/compilers/armlibc/stdio.c | 20 ++-------------- components/libc/compilers/armlibc/stubs.c | 20 ++-------------- components/libc/compilers/armlibc/sys/errno.h | 8 +++++++ components/libc/compilers/armlibc/sys/mman.h | 18 ++------------- components/libc/compilers/armlibc/sys/stat.h | 8 +++++++ components/libc/compilers/armlibc/sys/time.h | 8 +++++++ components/libc/compilers/armlibc/sys/types.h | 8 +++++++ .../libc/compilers/armlibc/sys/unistd.h | 8 +++++++ components/libc/compilers/armlibc/termios.h | 8 +++++++ components/libc/compilers/armlibc/time.c | 8 +++++++ components/libc/compilers/armlibc/unistd.h | 8 +++++++ components/libc/compilers/dlib/dirent.h | 8 +++++++ components/libc/compilers/dlib/environ.c | 19 +++------------ components/libc/compilers/dlib/fcntl.h | 8 +++++++ components/libc/compilers/dlib/libc.c | 20 ++-------------- components/libc/compilers/dlib/libc.h | 20 ++-------------- components/libc/compilers/dlib/rmtx.c | 18 ++------------- components/libc/compilers/dlib/stdio.c | 20 ++-------------- components/libc/compilers/dlib/sys/errno.h | 8 +++++++ components/libc/compilers/dlib/sys/mman.h | 18 ++------------- components/libc/compilers/dlib/sys/stat.h | 8 +++++++ components/libc/compilers/dlib/sys/time.h | 8 +++++++ components/libc/compilers/dlib/sys/types.h | 8 +++++++ components/libc/compilers/dlib/sys/unistd.h | 8 +++++++ .../libc/compilers/dlib/syscall_close.c | 18 ++------------- .../libc/compilers/dlib/syscall_lseek.c | 18 ++------------- components/libc/compilers/dlib/syscall_mem.c | 18 ++------------- components/libc/compilers/dlib/syscall_open.c | 22 ++++-------------- components/libc/compilers/dlib/syscall_read.c | 18 ++------------- .../libc/compilers/dlib/syscall_remove.c | 18 ++------------- .../libc/compilers/dlib/syscall_write.c | 18 ++------------- components/libc/compilers/dlib/syscalls.h | 19 +++------------ components/libc/compilers/dlib/termios.h | 8 +++++++ components/libc/compilers/dlib/time.c | 8 +++++++ components/libc/compilers/dlib/unistd.h | 8 +++++++ components/libc/compilers/minilibc/ctype.c | 8 ++----- components/libc/compilers/minilibc/ctype.h | 8 ++----- components/libc/compilers/minilibc/errno.h | 8 +++++++ components/libc/compilers/minilibc/inttypes.h | 8 +++++++ components/libc/compilers/minilibc/math.c | 8 +++++++ components/libc/compilers/minilibc/math.h | 8 +++++++ components/libc/compilers/minilibc/qsort.c | 8 +++++++ components/libc/compilers/minilibc/rand.c | 8 +++++++ components/libc/compilers/minilibc/stddef.h | 8 +++++++ components/libc/compilers/minilibc/stdint.h | 8 +++++++ components/libc/compilers/minilibc/stdio.h | 8 +++++++ components/libc/compilers/minilibc/stdlib.c | 8 ++----- components/libc/compilers/minilibc/stdlib.h | 8 ++----- components/libc/compilers/minilibc/string.c | 8 ++----- components/libc/compilers/minilibc/string.h | 8 ++----- components/libc/compilers/minilibc/sys/mman.h | 18 ++------------- components/libc/compilers/minilibc/sys/stat.h | 8 +++++++ components/libc/compilers/minilibc/sys/time.h | 8 +++++++ .../libc/compilers/minilibc/sys/types.h | 8 +++++++ components/libc/compilers/minilibc/time.c | 8 +++++++ components/libc/compilers/minilibc/time.h | 8 +++++++ components/libc/compilers/newlib/libc.c | 20 ++-------------- components/libc/compilers/newlib/libc.h | 20 ++-------------- components/libc/compilers/newlib/libc_syms.c | 20 ++-------------- components/libc/compilers/newlib/stdio.c | 20 ++-------------- components/libc/compilers/newlib/sys/dirent.h | 8 +++++++ components/libc/compilers/newlib/sys/mman.h | 18 ++------------- components/libc/compilers/newlib/sys/statfs.h | 8 +++++++ .../libc/compilers/newlib/sys/termios.h | 8 +++++++ components/libc/compilers/newlib/syscalls.c | 8 +++++++ components/libc/compilers/newlib/termios.h | 8 +++++++ components/libc/compilers/newlib/time.c | 8 +++++++ components/libc/mmap/posix_mmap.c | 18 ++------------- components/libc/pthreads/mqueue.c | 18 ++------------- components/libc/pthreads/mqueue.h | 18 ++------------- components/libc/pthreads/posix_types.h | 18 ++------------- components/libc/pthreads/pthread.c | 18 ++------------- components/libc/pthreads/pthread.h | 18 ++------------- components/libc/pthreads/pthread_attr.c | 18 ++------------- components/libc/pthreads/pthread_barrier.c | 18 ++------------- components/libc/pthreads/pthread_cond.c | 18 ++------------- components/libc/pthreads/pthread_internal.h | 18 ++------------- components/libc/pthreads/pthread_mutex.c | 18 ++------------- components/libc/pthreads/pthread_rwlock.c | 18 ++------------- components/libc/pthreads/pthread_spin.c | 18 ++------------- components/libc/pthreads/pthread_tls.c | 18 ++------------- components/libc/pthreads/sched.c | 18 ++------------- components/libc/pthreads/sched.h | 18 ++------------- components/libc/pthreads/semaphore.c | 18 ++------------- components/libc/pthreads/semaphore.h | 18 ++------------- components/libc/signal/posix_signal.c | 18 ++------------- components/libc/signal/posix_signal.h | 18 ++------------- components/libc/termios/posix_termios.c | 18 ++------------- components/libc/termios/posix_termios.h | 18 ++------------- components/libc/time/clock_time.c | 18 ++------------- components/libc/time/clock_time.h | 18 ++------------- components/libc/time/posix_sleep.c | 8 +++++++ components/utilities/logtrace/log_file.c | 18 ++------------- components/utilities/logtrace/log_trace.c | 18 ++------------- components/utilities/logtrace/log_trace.h | 18 ++------------- components/utilities/logtrace/memlog.c | 18 ++------------- 144 files changed, 568 insertions(+), 1674 deletions(-) diff --git a/components/cplusplus/Lock.h b/components/cplusplus/Lock.h index 2d8cbe5895..08d57c4850 100644 --- a/components/cplusplus/Lock.h +++ b/components/cplusplus/Lock.h @@ -1,21 +1,7 @@ /* - * File : Lock.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/cplusplus/Mail.h b/components/cplusplus/Mail.h index c812aa0bd7..e6b11af9e8 100644 --- a/components/cplusplus/Mail.h +++ b/components/cplusplus/Mail.h @@ -1,21 +1,7 @@ /* - * File : Mail.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/cplusplus/Mutex.cpp b/components/cplusplus/Mutex.cpp index c8dbbe6598..229e842446 100644 --- a/components/cplusplus/Mutex.cpp +++ b/components/cplusplus/Mutex.cpp @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include "Mutex.h" using namespace rtthread; diff --git a/components/cplusplus/Mutex.h b/components/cplusplus/Mutex.h index b4109751e5..4a54c41ebb 100644 --- a/components/cplusplus/Mutex.h +++ b/components/cplusplus/Mutex.h @@ -1,21 +1,7 @@ /* - * File : Mutex.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/cplusplus/Queue.h b/components/cplusplus/Queue.h index b011dd5d28..fba64bf51b 100644 --- a/components/cplusplus/Queue.h +++ b/components/cplusplus/Queue.h @@ -1,21 +1,7 @@ /* - * File : Queue.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/cplusplus/Semaphore.cpp b/components/cplusplus/Semaphore.cpp index 2579bcb041..c977a27c1a 100644 --- a/components/cplusplus/Semaphore.cpp +++ b/components/cplusplus/Semaphore.cpp @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include "Semaphore.h" using namespace rtthread; diff --git a/components/cplusplus/Semaphore.h b/components/cplusplus/Semaphore.h index 6c09b198c6..cebaf91234 100644 --- a/components/cplusplus/Semaphore.h +++ b/components/cplusplus/Semaphore.h @@ -1,21 +1,7 @@ /* - * File : Semaphore.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/cplusplus/Thread.cpp b/components/cplusplus/Thread.cpp index a01bd95e4b..0f6315d178 100644 --- a/components/cplusplus/Thread.cpp +++ b/components/cplusplus/Thread.cpp @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include "Thread.h" using namespace rtthread; diff --git a/components/cplusplus/Thread.h b/components/cplusplus/Thread.h index 78bbd77d1f..9b6cf30884 100644 --- a/components/cplusplus/Thread.h +++ b/components/cplusplus/Thread.h @@ -1,21 +1,7 @@ /* - * File : Thread.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/cplusplus/crt.cpp b/components/cplusplus/crt.cpp index b6455f73f4..cac1e5fa57 100644 --- a/components/cplusplus/crt.cpp +++ b/components/cplusplus/crt.cpp @@ -1,22 +1,8 @@ /* -* File : crt.cpp -* This file is part of Device File System in RT-Thread RTOS -* COPYRIGHT (C) 2008-2015, RT-Thread Development Team -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License along -* with this program; if not, write to the Free Software Foundation, Inc., -* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * * Change Logs: * Date Author Notes * 2015-03-07 Bernard Add copyright header. diff --git a/components/cplusplus/crt.h b/components/cplusplus/crt.h index 105aa0e4fc..6228dab2a9 100644 --- a/components/cplusplus/crt.h +++ b/components/cplusplus/crt.h @@ -1,22 +1,8 @@ /* -* File : crt.h -* This file is part of Device File System in RT-Thread RTOS -* COPYRIGHT (C) 2008-2015, RT-Thread Development Team -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License along -* with this program; if not, write to the Free Software Foundation, Inc., -* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * * Change Logs: * Date Author Notes * 2015-03-07 Bernard Add copyright header. diff --git a/components/cplusplus/crt_init.c b/components/cplusplus/crt_init.c index 2026131c52..e67939feeb 100755 --- a/components/cplusplus/crt_init.c +++ b/components/cplusplus/crt_init.c @@ -1,22 +1,8 @@ /* -* File : crt_init.c -* This file is part of Device File System in RT-Thread RTOS -* COPYRIGHT (C) 2008-2015, RT-Thread Development Team -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License along -* with this program; if not, write to the Free Software Foundation, Inc., -* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * * Change Logs: * Date Author Notes * 2014-12-03 Bernard Add copyright header. diff --git a/components/finsh/cmd.c b/components/finsh/cmd.c index edb7c0c921..0e04b794e9 100644 --- a/components/finsh/cmd.c +++ b/components/finsh/cmd.c @@ -1,26 +1,7 @@ /* - * RT-Thread finsh shell commands + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh.h b/components/finsh/finsh.h index 4452d4a0d6..eb38682c4f 100644 --- a/components/finsh/finsh.h +++ b/components/finsh/finsh.h @@ -1,20 +1,7 @@ /* - * File : finsh.h - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_api.h b/components/finsh/finsh_api.h index 3b7c77de2a..c601415d82 100644 --- a/components/finsh/finsh_api.h +++ b/components/finsh/finsh_api.h @@ -1,20 +1,7 @@ /* - * File : finsh_api.h - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_compiler.c b/components/finsh/finsh_compiler.c index cf6bb0fe43..1b1f67cb76 100644 --- a/components/finsh/finsh_compiler.c +++ b/components/finsh/finsh_compiler.c @@ -1,26 +1,7 @@ /* - * RT-Thread finsh shell compiler + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_error.c b/components/finsh/finsh_error.c index 962aee1ad3..bdd0108f98 100644 --- a/components/finsh/finsh_error.c +++ b/components/finsh/finsh_error.c @@ -1,26 +1,7 @@ /* - * error number for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2013, Shanghai Real-Thread Technology Co., Ltd - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_error.h b/components/finsh/finsh_error.h index bec5d85c27..614e02a350 100644 --- a/components/finsh/finsh_error.h +++ b/components/finsh/finsh_error.h @@ -1,26 +1,7 @@ /* - * error number for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2013, Shanghai Real-Thread Technology Co., Ltd - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_heap.c b/components/finsh/finsh_heap.c index f2f4beb08d..0d185db474 100644 --- a/components/finsh/finsh_heap.c +++ b/components/finsh/finsh_heap.c @@ -1,26 +1,7 @@ /* - * heap management in finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_heap.h b/components/finsh/finsh_heap.h index 7ea61d47eb..9c04e5c22f 100644 --- a/components/finsh/finsh_heap.h +++ b/components/finsh/finsh_heap.h @@ -1,26 +1,7 @@ /* - * heap management in finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_init.c b/components/finsh/finsh_init.c index a2852092f9..72f5aa5e9a 100644 --- a/components/finsh/finsh_init.c +++ b/components/finsh/finsh_init.c @@ -1,26 +1,7 @@ /* - * Initialization procedure for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_node.c b/components/finsh/finsh_node.c index ae28a6ac81..0de82c189d 100644 --- a/components/finsh/finsh_node.c +++ b/components/finsh/finsh_node.c @@ -1,26 +1,7 @@ /* - * node routines for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_node.h b/components/finsh/finsh_node.h index 5e0e4a300c..c7ce099636 100644 --- a/components/finsh/finsh_node.h +++ b/components/finsh/finsh_node.h @@ -1,26 +1,7 @@ /* - * node routines for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_ops.c b/components/finsh/finsh_ops.c index cefdf3c252..2eafb50c69 100644 --- a/components/finsh/finsh_ops.c +++ b/components/finsh/finsh_ops.c @@ -1,26 +1,7 @@ /* - * operations for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_ops.h b/components/finsh/finsh_ops.h index 4e4c5c976e..95a8b001fb 100644 --- a/components/finsh/finsh_ops.h +++ b/components/finsh/finsh_ops.h @@ -1,26 +1,7 @@ /* - * operations for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_parser.c b/components/finsh/finsh_parser.c index aa85509162..0e7617003c 100644 --- a/components/finsh/finsh_parser.c +++ b/components/finsh/finsh_parser.c @@ -1,26 +1,7 @@ /* - * script parser for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_parser.h b/components/finsh/finsh_parser.h index 00d440ae5f..8e149a7e00 100644 --- a/components/finsh/finsh_parser.h +++ b/components/finsh/finsh_parser.h @@ -1,26 +1,7 @@ /* - * script parser for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_token.c b/components/finsh/finsh_token.c index a9fd0ac7d0..5fb593d816 100644 --- a/components/finsh/finsh_token.c +++ b/components/finsh/finsh_token.c @@ -1,26 +1,7 @@ /* - * token lex for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_token.h b/components/finsh/finsh_token.h index fd7e2597cd..0ce98c0f14 100644 --- a/components/finsh/finsh_token.h +++ b/components/finsh/finsh_token.h @@ -1,26 +1,7 @@ /* - * token lex for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_var.c b/components/finsh/finsh_var.c index 7e39492644..6a27bf1fab 100644 --- a/components/finsh/finsh_var.c +++ b/components/finsh/finsh_var.c @@ -1,26 +1,7 @@ /* - * Variable implementation in finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_var.h b/components/finsh/finsh_var.h index f8013ac9d3..8d7ee6a201 100644 --- a/components/finsh/finsh_var.h +++ b/components/finsh/finsh_var.h @@ -1,26 +1,7 @@ /* - * Variable implementation in finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_vm.c b/components/finsh/finsh_vm.c index 8a3b8949e5..fcd58494a9 100644 --- a/components/finsh/finsh_vm.c +++ b/components/finsh/finsh_vm.c @@ -1,26 +1,7 @@ /* - * Virtual machine of finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/finsh_vm.h b/components/finsh/finsh_vm.h index 478a757146..fc515418e4 100644 --- a/components/finsh/finsh_vm.h +++ b/components/finsh/finsh_vm.h @@ -1,26 +1,7 @@ /* - * Virtual machine finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/msh.c b/components/finsh/msh.c index a724b65faa..ae5214cc2c 100644 --- a/components/finsh/msh.c +++ b/components/finsh/msh.c @@ -1,26 +1,7 @@ /* - * RT-Thread module shell implementation. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2013, Shanghai Real-Thread Technology Co., Ltd - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/msh.h b/components/finsh/msh.h index df49732956..b7153107ea 100644 --- a/components/finsh/msh.h +++ b/components/finsh/msh.h @@ -1,26 +1,7 @@ /* - * RT-Thread module shell implementation. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2013, Shanghai Real-Thread Technology Co., Ltd - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/msh_cmd.c b/components/finsh/msh_cmd.c index 47ca031065..8f5de3cc16 100644 --- a/components/finsh/msh_cmd.c +++ b/components/finsh/msh_cmd.c @@ -1,26 +1,7 @@ /* - * internal commands for RT-Thread module shell + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2013-2015, Shanghai Real-Thread Technology Co., Ltd - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/msh_file.c b/components/finsh/msh_file.c index 80012e9bb8..ecab250859 100644 --- a/components/finsh/msh_file.c +++ b/components/finsh/msh_file.c @@ -1,26 +1,7 @@ /* - * script for RT-Thread module shell + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2013-2015, Shanghai Real-Thread Technology Co., Ltd - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/shell.c b/components/finsh/shell.c index 441f6c3241..e4b27004d5 100644 --- a/components/finsh/shell.c +++ b/components/finsh/shell.c @@ -1,26 +1,7 @@ /* - * shell implementation for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/shell.h b/components/finsh/shell.h index d0fd66ee78..2cf2c9b833 100644 --- a/components/finsh/shell.h +++ b/components/finsh/shell.h @@ -1,26 +1,7 @@ /* - * shell implementation for finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/finsh/symbol.c b/components/finsh/symbol.c index 8e026c4a1b..a8c64dfdd5 100644 --- a/components/finsh/symbol.c +++ b/components/finsh/symbol.c @@ -1,26 +1,7 @@ /* - * symbols in finsh shell. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/aio/posix_aio.c b/components/libc/aio/posix_aio.c index 03e653bdd1..75e7de9ce3 100644 --- a/components/libc/aio/posix_aio.c +++ b/components/libc/aio/posix_aio.c @@ -1,21 +1,7 @@ /* - * File : posix_aio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/aio/posix_aio.h b/components/libc/aio/posix_aio.h index 0787538aa0..f20ed48cb3 100644 --- a/components/libc/aio/posix_aio.h +++ b/components/libc/aio/posix_aio.h @@ -1,21 +1,7 @@ /* - * File : posix_aio.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/armlibc/dirent.h b/components/libc/compilers/armlibc/dirent.h index 1adf952031..d3bc58cbc5 100644 --- a/components/libc/compilers/armlibc/dirent.h +++ b/components/libc/compilers/armlibc/dirent.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __RTT_DIRENT_H__ #define __RTT_DIRENT_H__ diff --git a/components/libc/compilers/armlibc/fcntl.h b/components/libc/compilers/armlibc/fcntl.h index 324b73f218..80cf1b4409 100644 --- a/components/libc/compilers/armlibc/fcntl.h +++ b/components/libc/compilers/armlibc/fcntl.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef FCNTL_H__ #define FCNTL_H__ diff --git a/components/libc/compilers/armlibc/libc.c b/components/libc/compilers/armlibc/libc.c index c3fab19fdc..fee390d4b4 100644 --- a/components/libc/compilers/armlibc/libc.c +++ b/components/libc/compilers/armlibc/libc.c @@ -1,23 +1,7 @@ /* - * File : libc.c - * Brief : armcc libc initialization + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/armlibc/libc.h b/components/libc/compilers/armlibc/libc.h index e57897f0a8..158fe06c3e 100644 --- a/components/libc/compilers/armlibc/libc.h +++ b/components/libc/compilers/armlibc/libc.h @@ -1,23 +1,7 @@ /* - * File : libc.h - * Brief : armcc libc header file + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/armlibc/libc_syms.c b/components/libc/compilers/armlibc/libc_syms.c index fc84aec77a..0e1c42d899 100644 --- a/components/libc/compilers/armlibc/libc_syms.c +++ b/components/libc/compilers/armlibc/libc_syms.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include #include diff --git a/components/libc/compilers/armlibc/mem_std.c b/components/libc/compilers/armlibc/mem_std.c index 4393b5f2af..e160104a25 100644 --- a/components/libc/compilers/armlibc/mem_std.c +++ b/components/libc/compilers/armlibc/mem_std.c @@ -1,13 +1,7 @@ /* - * File : mem_std.c - * Brief : implement standard memory routins. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2014, RT-Thread Development Team - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * 2014-08-03 bernard Add file header. diff --git a/components/libc/compilers/armlibc/stdio.c b/components/libc/compilers/armlibc/stdio.c index 9d90823c78..5262a4dd92 100644 --- a/components/libc/compilers/armlibc/stdio.c +++ b/components/libc/compilers/armlibc/stdio.c @@ -1,23 +1,7 @@ /* - * File : stdio.c - * Brief : stdio/console + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/armlibc/stubs.c b/components/libc/compilers/armlibc/stubs.c index dbb60c8a44..6e9f13d143 100644 --- a/components/libc/compilers/armlibc/stubs.c +++ b/components/libc/compilers/armlibc/stubs.c @@ -1,23 +1,7 @@ /* - * File : stubs.c - * Brief : reimplement some basic functions of arm standard c library + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/armlibc/sys/errno.h b/components/libc/compilers/armlibc/sys/errno.h index 8ee115ed04..9c4307ebfb 100644 --- a/components/libc/compilers/armlibc/sys/errno.h +++ b/components/libc/compilers/armlibc/sys/errno.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef SYS_ERRNO_H__ #define SYS_ERRNO_H__ diff --git a/components/libc/compilers/armlibc/sys/mman.h b/components/libc/compilers/armlibc/sys/mman.h index 024a64e911..8c61b32b7c 100644 --- a/components/libc/compilers/armlibc/sys/mman.h +++ b/components/libc/compilers/armlibc/sys/mman.h @@ -1,21 +1,7 @@ /* - * File : mman.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/armlibc/sys/stat.h b/components/libc/compilers/armlibc/sys/stat.h index e69de29bb2..ce95230e88 100644 --- a/components/libc/compilers/armlibc/sys/stat.h +++ b/components/libc/compilers/armlibc/sys/stat.h @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ diff --git a/components/libc/compilers/armlibc/sys/time.h b/components/libc/compilers/armlibc/sys/time.h index 2d60b37317..e5751cfa3d 100644 --- a/components/libc/compilers/armlibc/sys/time.h +++ b/components/libc/compilers/armlibc/sys/time.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef _SYS_TIME_H_ #define _SYS_TIME_H_ diff --git a/components/libc/compilers/armlibc/sys/types.h b/components/libc/compilers/armlibc/sys/types.h index b01d8283d4..4c76dfc429 100644 --- a/components/libc/compilers/armlibc/sys/types.h +++ b/components/libc/compilers/armlibc/sys/types.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __TYPES_H__ #define __TYPES_H__ diff --git a/components/libc/compilers/armlibc/sys/unistd.h b/components/libc/compilers/armlibc/sys/unistd.h index 56979955ba..33f0561e72 100644 --- a/components/libc/compilers/armlibc/sys/unistd.h +++ b/components/libc/compilers/armlibc/sys/unistd.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef _SYS_UNISTD_H #define _SYS_UNISTD_H diff --git a/components/libc/compilers/armlibc/termios.h b/components/libc/compilers/armlibc/termios.h index 0b54066a76..1956121225 100644 --- a/components/libc/compilers/armlibc/termios.h +++ b/components/libc/compilers/armlibc/termios.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef _TERMIOS_H__ #define _TERMIOS_H__ diff --git a/components/libc/compilers/armlibc/time.c b/components/libc/compilers/armlibc/time.c index e7ad19ad3c..29c5c6cdd2 100644 --- a/components/libc/compilers/armlibc/time.c +++ b/components/libc/compilers/armlibc/time.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include diff --git a/components/libc/compilers/armlibc/unistd.h b/components/libc/compilers/armlibc/unistd.h index 3de0eaf398..70187722d8 100644 --- a/components/libc/compilers/armlibc/unistd.h +++ b/components/libc/compilers/armlibc/unistd.h @@ -1 +1,9 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include "sys/unistd.h" diff --git a/components/libc/compilers/dlib/dirent.h b/components/libc/compilers/dlib/dirent.h index 61e77b9767..4c897cc550 100644 --- a/components/libc/compilers/dlib/dirent.h +++ b/components/libc/compilers/dlib/dirent.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __RTT_DIRENT_H__ #define __RTT_DIRENT_H__ diff --git a/components/libc/compilers/dlib/environ.c b/components/libc/compilers/dlib/environ.c index 1e44eb1627..ac19758838 100644 --- a/components/libc/compilers/dlib/environ.c +++ b/components/libc/compilers/dlib/environ.c @@ -1,20 +1,7 @@ -/* File: environ.c - * this file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team +/* + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/fcntl.h b/components/libc/compilers/dlib/fcntl.h index e69de29bb2..ce95230e88 100644 --- a/components/libc/compilers/dlib/fcntl.h +++ b/components/libc/compilers/dlib/fcntl.h @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ diff --git a/components/libc/compilers/dlib/libc.c b/components/libc/compilers/dlib/libc.c index fa977ab399..8b42411a6b 100644 --- a/components/libc/compilers/dlib/libc.c +++ b/components/libc/compilers/dlib/libc.c @@ -1,23 +1,7 @@ /* - * File : libc.c - * Brief : iar dlib initialization + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/libc.h b/components/libc/compilers/dlib/libc.h index d0a081d538..7b2665c32b 100644 --- a/components/libc/compilers/dlib/libc.h +++ b/components/libc/compilers/dlib/libc.h @@ -1,23 +1,7 @@ /* - * File : libc.h - * Brief : iar dlib header file + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/rmtx.c b/components/libc/compilers/dlib/rmtx.c index 4bf7140271..69405c8f6a 100644 --- a/components/libc/compilers/dlib/rmtx.c +++ b/components/libc/compilers/dlib/rmtx.c @@ -1,21 +1,7 @@ /* - * File : rmtx.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/stdio.c b/components/libc/compilers/dlib/stdio.c index 12c1081d8b..b35ade7a38 100644 --- a/components/libc/compilers/dlib/stdio.c +++ b/components/libc/compilers/dlib/stdio.c @@ -1,23 +1,7 @@ /* - * File : stdio.c - * Brief : stdio/console + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/sys/errno.h b/components/libc/compilers/dlib/sys/errno.h index 072892edc1..1ecb58b74c 100644 --- a/components/libc/compilers/dlib/sys/errno.h +++ b/components/libc/compilers/dlib/sys/errno.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef SYS_ERRNO_H__ #define SYS_ERRNO_H__ diff --git a/components/libc/compilers/dlib/sys/mman.h b/components/libc/compilers/dlib/sys/mman.h index 024a64e911..8c61b32b7c 100644 --- a/components/libc/compilers/dlib/sys/mman.h +++ b/components/libc/compilers/dlib/sys/mman.h @@ -1,21 +1,7 @@ /* - * File : mman.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/sys/stat.h b/components/libc/compilers/dlib/sys/stat.h index e69de29bb2..ce95230e88 100644 --- a/components/libc/compilers/dlib/sys/stat.h +++ b/components/libc/compilers/dlib/sys/stat.h @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ diff --git a/components/libc/compilers/dlib/sys/time.h b/components/libc/compilers/dlib/sys/time.h index 1acb836032..766d219faf 100644 --- a/components/libc/compilers/dlib/sys/time.h +++ b/components/libc/compilers/dlib/sys/time.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef _SYS_TIME_H_ #define _SYS_TIME_H_ diff --git a/components/libc/compilers/dlib/sys/types.h b/components/libc/compilers/dlib/sys/types.h index b01d8283d4..4c76dfc429 100644 --- a/components/libc/compilers/dlib/sys/types.h +++ b/components/libc/compilers/dlib/sys/types.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __TYPES_H__ #define __TYPES_H__ diff --git a/components/libc/compilers/dlib/sys/unistd.h b/components/libc/compilers/dlib/sys/unistd.h index dbe4f3010d..5985a42996 100644 --- a/components/libc/compilers/dlib/sys/unistd.h +++ b/components/libc/compilers/dlib/sys/unistd.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef _SYS_UNISTD_H #define _SYS_UNISTD_H diff --git a/components/libc/compilers/dlib/syscall_close.c b/components/libc/compilers/dlib/syscall_close.c index 5792bb3806..f46162deb7 100644 --- a/components/libc/compilers/dlib/syscall_close.c +++ b/components/libc/compilers/dlib/syscall_close.c @@ -1,21 +1,7 @@ /* - * File : syscall_close.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/syscall_lseek.c b/components/libc/compilers/dlib/syscall_lseek.c index 950ba52f65..b79cc410b7 100644 --- a/components/libc/compilers/dlib/syscall_lseek.c +++ b/components/libc/compilers/dlib/syscall_lseek.c @@ -1,21 +1,7 @@ /* - * File : syscall_lseek.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/syscall_mem.c b/components/libc/compilers/dlib/syscall_mem.c index b3933ba910..236ef1c12d 100644 --- a/components/libc/compilers/dlib/syscall_mem.c +++ b/components/libc/compilers/dlib/syscall_mem.c @@ -1,21 +1,7 @@ /* - * File : syscall_mem.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/syscall_open.c b/components/libc/compilers/dlib/syscall_open.c index 6194707549..96e02dc32a 100644 --- a/components/libc/compilers/dlib/syscall_open.c +++ b/components/libc/compilers/dlib/syscall_open.c @@ -1,22 +1,8 @@ /* -* File : syscall_open.c -* This file is part of RT-Thread RTOS -* COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License along -* with this program; if not, write to the Free Software Foundation, Inc., -* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * * Change Logs: * Date Author Notes * 2015-01-28 Bernard first version diff --git a/components/libc/compilers/dlib/syscall_read.c b/components/libc/compilers/dlib/syscall_read.c index e7e99629d7..e248211486 100644 --- a/components/libc/compilers/dlib/syscall_read.c +++ b/components/libc/compilers/dlib/syscall_read.c @@ -1,21 +1,7 @@ /* - * File : syscall_read.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/syscall_remove.c b/components/libc/compilers/dlib/syscall_remove.c index b7dd9477b7..e7f0268b1b 100644 --- a/components/libc/compilers/dlib/syscall_remove.c +++ b/components/libc/compilers/dlib/syscall_remove.c @@ -1,21 +1,7 @@ /* - * File : syscall_remove.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/syscall_write.c b/components/libc/compilers/dlib/syscall_write.c index 79d702339a..85c0da22c3 100644 --- a/components/libc/compilers/dlib/syscall_write.c +++ b/components/libc/compilers/dlib/syscall_write.c @@ -1,21 +1,7 @@ /* - * File : syscall_write.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/syscalls.h b/components/libc/compilers/dlib/syscalls.h index 2c38854f72..993962e8db 100644 --- a/components/libc/compilers/dlib/syscalls.h +++ b/components/libc/compilers/dlib/syscalls.h @@ -1,20 +1,7 @@ -/* File: syscalls.h - * this file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team +/* + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/dlib/termios.h b/components/libc/compilers/dlib/termios.h index 0b54066a76..1956121225 100644 --- a/components/libc/compilers/dlib/termios.h +++ b/components/libc/compilers/dlib/termios.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef _TERMIOS_H__ #define _TERMIOS_H__ diff --git a/components/libc/compilers/dlib/time.c b/components/libc/compilers/dlib/time.c index f61bd5cfca..bea01e90e5 100644 --- a/components/libc/compilers/dlib/time.c +++ b/components/libc/compilers/dlib/time.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include diff --git a/components/libc/compilers/dlib/unistd.h b/components/libc/compilers/dlib/unistd.h index d67f8fb6f2..a07d8409c2 100644 --- a/components/libc/compilers/dlib/unistd.h +++ b/components/libc/compilers/dlib/unistd.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef _UNISTD_H_ #define _UNISTD_H_ diff --git a/components/libc/compilers/minilibc/ctype.c b/components/libc/compilers/minilibc/ctype.c index fed8f583a6..b94ff2dae8 100644 --- a/components/libc/compilers/minilibc/ctype.c +++ b/components/libc/compilers/minilibc/ctype.c @@ -1,11 +1,7 @@ /* - * File : ctype.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2008, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/minilibc/ctype.h b/components/libc/compilers/minilibc/ctype.h index 6b93490d36..5f41376ed8 100644 --- a/components/libc/compilers/minilibc/ctype.h +++ b/components/libc/compilers/minilibc/ctype.h @@ -1,11 +1,7 @@ /* - * File : ctype.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2008, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/minilibc/errno.h b/components/libc/compilers/minilibc/errno.h index 751eef50dc..a7ee380594 100644 --- a/components/libc/compilers/minilibc/errno.h +++ b/components/libc/compilers/minilibc/errno.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __ERRNO_H__ #define __ERRNO_H__ diff --git a/components/libc/compilers/minilibc/inttypes.h b/components/libc/compilers/minilibc/inttypes.h index 84e036a043..8bab743655 100644 --- a/components/libc/compilers/minilibc/inttypes.h +++ b/components/libc/compilers/minilibc/inttypes.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __INTTYPES_H__ #define __INTTYPES_H__ diff --git a/components/libc/compilers/minilibc/math.c b/components/libc/compilers/minilibc/math.c index 27315a428c..cd5770178e 100644 --- a/components/libc/compilers/minilibc/math.c +++ b/components/libc/compilers/minilibc/math.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include /* diff --git a/components/libc/compilers/minilibc/math.h b/components/libc/compilers/minilibc/math.h index b436eb08b5..9ddb9c859b 100644 --- a/components/libc/compilers/minilibc/math.h +++ b/components/libc/compilers/minilibc/math.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __MATH_H__ #define __MATH_H__ diff --git a/components/libc/compilers/minilibc/qsort.c b/components/libc/compilers/minilibc/qsort.c index f412986e1d..2b97ce763c 100644 --- a/components/libc/compilers/minilibc/qsort.c +++ b/components/libc/compilers/minilibc/qsort.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include diff --git a/components/libc/compilers/minilibc/rand.c b/components/libc/compilers/minilibc/rand.c index 387d605d4c..88603dc808 100644 --- a/components/libc/compilers/minilibc/rand.c +++ b/components/libc/compilers/minilibc/rand.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include #include diff --git a/components/libc/compilers/minilibc/stddef.h b/components/libc/compilers/minilibc/stddef.h index 8068277117..7353a157cb 100644 --- a/components/libc/compilers/minilibc/stddef.h +++ b/components/libc/compilers/minilibc/stddef.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __STDDEF_H__ #define __STDDEF_H__ diff --git a/components/libc/compilers/minilibc/stdint.h b/components/libc/compilers/minilibc/stdint.h index c865d43435..bd5fdc83f5 100644 --- a/components/libc/compilers/minilibc/stdint.h +++ b/components/libc/compilers/minilibc/stdint.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* * ISO C Standard: 7.18 Integer types */ diff --git a/components/libc/compilers/minilibc/stdio.h b/components/libc/compilers/minilibc/stdio.h index a6ecb32931..678682cf5e 100644 --- a/components/libc/compilers/minilibc/stdio.h +++ b/components/libc/compilers/minilibc/stdio.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __STDIO_H__ #define __STDIO_H__ diff --git a/components/libc/compilers/minilibc/stdlib.c b/components/libc/compilers/minilibc/stdlib.c index e29ae9bc2e..8154ec5b8b 100644 --- a/components/libc/compilers/minilibc/stdlib.c +++ b/components/libc/compilers/minilibc/stdlib.c @@ -1,11 +1,7 @@ /* - * File : stdlib.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2008, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/minilibc/stdlib.h b/components/libc/compilers/minilibc/stdlib.h index 4e87537d3f..d57d95b64d 100644 --- a/components/libc/compilers/minilibc/stdlib.h +++ b/components/libc/compilers/minilibc/stdlib.h @@ -1,11 +1,7 @@ /* - * File : stdlib.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2008, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/minilibc/string.c b/components/libc/compilers/minilibc/string.c index 4e90da1554..1ab7c0509f 100644 --- a/components/libc/compilers/minilibc/string.c +++ b/components/libc/compilers/minilibc/string.c @@ -1,11 +1,7 @@ /* - * File : string.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2008, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/minilibc/string.h b/components/libc/compilers/minilibc/string.h index 089903e993..45524c7764 100644 --- a/components/libc/compilers/minilibc/string.h +++ b/components/libc/compilers/minilibc/string.h @@ -1,11 +1,7 @@ /* - * File : string.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2008, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/minilibc/sys/mman.h b/components/libc/compilers/minilibc/sys/mman.h index 024a64e911..8c61b32b7c 100644 --- a/components/libc/compilers/minilibc/sys/mman.h +++ b/components/libc/compilers/minilibc/sys/mman.h @@ -1,21 +1,7 @@ /* - * File : mman.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/minilibc/sys/stat.h b/components/libc/compilers/minilibc/sys/stat.h index 7826cba945..65db477a4a 100644 --- a/components/libc/compilers/minilibc/sys/stat.h +++ b/components/libc/compilers/minilibc/sys/stat.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __STAT_H__ #define __STAT_H__ diff --git a/components/libc/compilers/minilibc/sys/time.h b/components/libc/compilers/minilibc/sys/time.h index 9cb330df5c..22a93f5c9d 100644 --- a/components/libc/compilers/minilibc/sys/time.h +++ b/components/libc/compilers/minilibc/sys/time.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef _SYS_TIME_H_ #define _SYS_TIME_H_ diff --git a/components/libc/compilers/minilibc/sys/types.h b/components/libc/compilers/minilibc/sys/types.h index 850bafea43..0c00a79d1e 100644 --- a/components/libc/compilers/minilibc/sys/types.h +++ b/components/libc/compilers/minilibc/sys/types.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __TYPES_H__ #define __TYPES_H__ diff --git a/components/libc/compilers/minilibc/time.c b/components/libc/compilers/minilibc/time.c index 605f6f573e..508558bafc 100644 --- a/components/libc/compilers/minilibc/time.c +++ b/components/libc/compilers/minilibc/time.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include diff --git a/components/libc/compilers/minilibc/time.h b/components/libc/compilers/minilibc/time.h index d64feba0b8..09fc7d2e67 100644 --- a/components/libc/compilers/minilibc/time.h +++ b/components/libc/compilers/minilibc/time.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __TIME_H__ #define __TIME_H__ diff --git a/components/libc/compilers/newlib/libc.c b/components/libc/compilers/newlib/libc.c index 495ecf4ce0..06c490c8cf 100644 --- a/components/libc/compilers/newlib/libc.c +++ b/components/libc/compilers/newlib/libc.c @@ -1,23 +1,7 @@ /* - * File : libc.c - * Brief : gcc libc header file + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/newlib/libc.h b/components/libc/compilers/newlib/libc.h index e0a9f053a0..ab9334fe26 100644 --- a/components/libc/compilers/newlib/libc.h +++ b/components/libc/compilers/newlib/libc.h @@ -1,23 +1,7 @@ /* - * File : libc.h - * Brief : gcc libc header file + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/newlib/libc_syms.c b/components/libc/compilers/newlib/libc_syms.c index ed8686e5dd..b150c10fd6 100644 --- a/components/libc/compilers/newlib/libc_syms.c +++ b/components/libc/compilers/newlib/libc_syms.c @@ -1,23 +1,7 @@ /* - * File : libc_syms.c - * Brief : exported symbols for libc. + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/newlib/stdio.c b/components/libc/compilers/newlib/stdio.c index 9f30106b72..233a447396 100644 --- a/components/libc/compilers/newlib/stdio.c +++ b/components/libc/compilers/newlib/stdio.c @@ -1,23 +1,7 @@ /* - * File : stdio.c - * Brief : stdio for newlib + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/newlib/sys/dirent.h b/components/libc/compilers/newlib/sys/dirent.h index 2efc683579..db8c0655a1 100644 --- a/components/libc/compilers/newlib/sys/dirent.h +++ b/components/libc/compilers/newlib/sys/dirent.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __RTT_DIRENT_H__ #define __RTT_DIRENT_H__ diff --git a/components/libc/compilers/newlib/sys/mman.h b/components/libc/compilers/newlib/sys/mman.h index 024a64e911..8c61b32b7c 100644 --- a/components/libc/compilers/newlib/sys/mman.h +++ b/components/libc/compilers/newlib/sys/mman.h @@ -1,21 +1,7 @@ /* - * File : mman.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/compilers/newlib/sys/statfs.h b/components/libc/compilers/newlib/sys/statfs.h index 95772b5ead..3c923a21f9 100644 --- a/components/libc/compilers/newlib/sys/statfs.h +++ b/components/libc/compilers/newlib/sys/statfs.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __RTT_STATFS_H__ #define __RTT_STATFS_H__ diff --git a/components/libc/compilers/newlib/sys/termios.h b/components/libc/compilers/newlib/sys/termios.h index e69de29bb2..ce95230e88 100644 --- a/components/libc/compilers/newlib/sys/termios.h +++ b/components/libc/compilers/newlib/sys/termios.h @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ diff --git a/components/libc/compilers/newlib/syscalls.c b/components/libc/compilers/newlib/syscalls.c index cc72efe9ea..e4cda478cb 100644 --- a/components/libc/compilers/newlib/syscalls.c +++ b/components/libc/compilers/newlib/syscalls.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include #include diff --git a/components/libc/compilers/newlib/termios.h b/components/libc/compilers/newlib/termios.h index 0b54066a76..1956121225 100644 --- a/components/libc/compilers/newlib/termios.h +++ b/components/libc/compilers/newlib/termios.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef _TERMIOS_H__ #define _TERMIOS_H__ diff --git a/components/libc/compilers/newlib/time.c b/components/libc/compilers/newlib/time.c index e7ad19ad3c..29c5c6cdd2 100644 --- a/components/libc/compilers/newlib/time.c +++ b/components/libc/compilers/newlib/time.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include diff --git a/components/libc/mmap/posix_mmap.c b/components/libc/mmap/posix_mmap.c index 8e70678c25..3d405aad77 100644 --- a/components/libc/mmap/posix_mmap.c +++ b/components/libc/mmap/posix_mmap.c @@ -1,21 +1,7 @@ /* - * File : posix_mmap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/mqueue.c b/components/libc/pthreads/mqueue.c index 7b669dc367..003b49b9a0 100644 --- a/components/libc/pthreads/mqueue.c +++ b/components/libc/pthreads/mqueue.c @@ -1,21 +1,7 @@ /* - * File : mqueue.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/mqueue.h b/components/libc/pthreads/mqueue.h index de2925837f..5cadde3ae8 100644 --- a/components/libc/pthreads/mqueue.h +++ b/components/libc/pthreads/mqueue.h @@ -1,21 +1,7 @@ /* - * File : mqueue.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/posix_types.h b/components/libc/pthreads/posix_types.h index 1e401e2de3..ca20464bb5 100644 --- a/components/libc/pthreads/posix_types.h +++ b/components/libc/pthreads/posix_types.h @@ -1,21 +1,7 @@ /* - * File : posix_types.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/pthread.c b/components/libc/pthreads/pthread.c index 103b5de33d..62c110499d 100644 --- a/components/libc/pthreads/pthread.c +++ b/components/libc/pthreads/pthread.c @@ -1,21 +1,7 @@ /* - * File : pthread.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/pthread.h b/components/libc/pthreads/pthread.h index b60aa37471..6a82375de4 100644 --- a/components/libc/pthreads/pthread.h +++ b/components/libc/pthreads/pthread.h @@ -1,21 +1,7 @@ /* - * File : pthread.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/pthread_attr.c b/components/libc/pthreads/pthread_attr.c index 3e0f7b1e4c..8eed35932f 100644 --- a/components/libc/pthreads/pthread_attr.c +++ b/components/libc/pthreads/pthread_attr.c @@ -1,21 +1,7 @@ /* - * File : pthread_attr.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/pthread_barrier.c b/components/libc/pthreads/pthread_barrier.c index c39a45586e..d76fe7f13f 100644 --- a/components/libc/pthreads/pthread_barrier.c +++ b/components/libc/pthreads/pthread_barrier.c @@ -1,21 +1,7 @@ /* - * File : pthread_barrier.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/pthread_cond.c b/components/libc/pthreads/pthread_cond.c index 1a4217310e..d3c4ac7637 100644 --- a/components/libc/pthreads/pthread_cond.c +++ b/components/libc/pthreads/pthread_cond.c @@ -1,21 +1,7 @@ /* - * File : pthread_cond.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/pthread_internal.h b/components/libc/pthreads/pthread_internal.h index ce7fb256a5..3e94e867d7 100644 --- a/components/libc/pthreads/pthread_internal.h +++ b/components/libc/pthreads/pthread_internal.h @@ -1,21 +1,7 @@ /* - * File : pthread_internal.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/pthread_mutex.c b/components/libc/pthreads/pthread_mutex.c index c7c3d38c4f..8f96531782 100644 --- a/components/libc/pthreads/pthread_mutex.c +++ b/components/libc/pthreads/pthread_mutex.c @@ -1,21 +1,7 @@ /* - * File : pthread_mutex.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/pthread_rwlock.c b/components/libc/pthreads/pthread_rwlock.c index 3e009034cc..64a0e221b4 100644 --- a/components/libc/pthreads/pthread_rwlock.c +++ b/components/libc/pthreads/pthread_rwlock.c @@ -1,21 +1,7 @@ /* - * File : pthread_rwlock.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/pthread_spin.c b/components/libc/pthreads/pthread_spin.c index 4c4320dda9..b31f4f6393 100644 --- a/components/libc/pthreads/pthread_spin.c +++ b/components/libc/pthreads/pthread_spin.c @@ -1,21 +1,7 @@ /* - * File : pthread_spin.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/pthread_tls.c b/components/libc/pthreads/pthread_tls.c index d689f31e47..c6d0bca155 100644 --- a/components/libc/pthreads/pthread_tls.c +++ b/components/libc/pthreads/pthread_tls.c @@ -1,21 +1,7 @@ /* - * File : pthread_tls.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/sched.c b/components/libc/pthreads/sched.c index 6f75127bf2..a1bf50985e 100644 --- a/components/libc/pthreads/sched.c +++ b/components/libc/pthreads/sched.c @@ -1,21 +1,7 @@ /* - * File : sched.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/sched.h b/components/libc/pthreads/sched.h index f0fa17bfa1..dbaf66edc2 100644 --- a/components/libc/pthreads/sched.h +++ b/components/libc/pthreads/sched.h @@ -1,21 +1,7 @@ /* - * File : sched.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/semaphore.c b/components/libc/pthreads/semaphore.c index ea6701b1e0..2bef10022e 100644 --- a/components/libc/pthreads/semaphore.c +++ b/components/libc/pthreads/semaphore.c @@ -1,21 +1,7 @@ /* - * File : semaphore.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/pthreads/semaphore.h b/components/libc/pthreads/semaphore.h index 664c15ee2e..d135ae9261 100644 --- a/components/libc/pthreads/semaphore.h +++ b/components/libc/pthreads/semaphore.h @@ -1,21 +1,7 @@ /* - * File : semaphore.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/signal/posix_signal.c b/components/libc/signal/posix_signal.c index b950fc956c..c0dd90e637 100644 --- a/components/libc/signal/posix_signal.c +++ b/components/libc/signal/posix_signal.c @@ -1,21 +1,7 @@ /* - * File : signal.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/signal/posix_signal.h b/components/libc/signal/posix_signal.h index 5ec721c921..896d6b6da4 100644 --- a/components/libc/signal/posix_signal.h +++ b/components/libc/signal/posix_signal.h @@ -1,21 +1,7 @@ /* - * File : signals.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/termios/posix_termios.c b/components/libc/termios/posix_termios.c index 4f7417cb27..75c876dd33 100644 --- a/components/libc/termios/posix_termios.c +++ b/components/libc/termios/posix_termios.c @@ -1,21 +1,7 @@ /* - * File : termios.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/termios/posix_termios.h b/components/libc/termios/posix_termios.h index b5bd1d50f4..4f556d79d9 100644 --- a/components/libc/termios/posix_termios.h +++ b/components/libc/termios/posix_termios.h @@ -1,21 +1,7 @@ /* - * File : termios.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/time/clock_time.c b/components/libc/time/clock_time.c index 3d3cc9aed3..83b3b916ca 100644 --- a/components/libc/time/clock_time.c +++ b/components/libc/time/clock_time.c @@ -1,21 +1,7 @@ /* - * File : clock_time.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/time/clock_time.h b/components/libc/time/clock_time.h index e91e6c97fa..7feb0390a4 100644 --- a/components/libc/time/clock_time.h +++ b/components/libc/time/clock_time.h @@ -1,21 +1,7 @@ /* - * File : clock_time.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/libc/time/posix_sleep.c b/components/libc/time/posix_sleep.c index b4b33722ac..f21b0a7994 100644 --- a/components/libc/time/posix_sleep.c +++ b/components/libc/time/posix_sleep.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include diff --git a/components/utilities/logtrace/log_file.c b/components/utilities/logtrace/log_file.c index 42d1f6e7a9..766e55c3a6 100644 --- a/components/utilities/logtrace/log_file.c +++ b/components/utilities/logtrace/log_file.c @@ -1,21 +1,7 @@ /* - * File : log_file.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/utilities/logtrace/log_trace.c b/components/utilities/logtrace/log_trace.c index 4ea0ff13fd..2d63149320 100644 --- a/components/utilities/logtrace/log_trace.c +++ b/components/utilities/logtrace/log_trace.c @@ -1,21 +1,7 @@ /* - * File : log_trace.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/utilities/logtrace/log_trace.h b/components/utilities/logtrace/log_trace.h index ca8bebb9c1..0c8a122515 100644 --- a/components/utilities/logtrace/log_trace.h +++ b/components/utilities/logtrace/log_trace.h @@ -1,21 +1,7 @@ /* - * File : log_trace.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013-2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/utilities/logtrace/memlog.c b/components/utilities/logtrace/memlog.c index 103373ce65..ea440c4958 100644 --- a/components/utilities/logtrace/memlog.c +++ b/components/utilities/logtrace/memlog.c @@ -1,21 +1,7 @@ /* - * File : memlog.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes From 2c0640a17872cd0e2a4fc8dc8a301a77dae6cc0d Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Sun, 14 Oct 2018 19:37:18 +0800 Subject: [PATCH 05/31] [license] Change license to Apache. --- components/drivers/audio/audio.c | 18 +- components/drivers/audio/audio_pipe.c | 18 +- components/drivers/audio/audio_pipe.h | 8 + components/drivers/can/can.c | 18 +- components/drivers/cputime/cputime.c | 18 +- components/drivers/cputime/cputime_cortexm.c | 18 +- components/drivers/hwtimer/hwtimer.c | 18 +- components/drivers/i2c/fm24clxx.c | 18 +- components/drivers/i2c/fm24clxx.h | 18 +- components/drivers/i2c/i2c-bit-ops.c | 18 +- components/drivers/i2c/i2c_core.c | 18 +- components/drivers/i2c/i2c_dev.c | 18 +- components/drivers/include/drivers/alarm.h | 18 +- components/drivers/include/drivers/audio.h | 20 +- components/drivers/include/drivers/can.h | 18 +- components/drivers/include/drivers/cputime.h | 18 +- components/drivers/include/drivers/hwtimer.h | 8 + .../drivers/include/drivers/i2c-bit-ops.h | 18 +- components/drivers/include/drivers/i2c.h | 18 +- components/drivers/include/drivers/i2c_dev.h | 18 +- components/drivers/include/drivers/mmc.h | 18 +- .../drivers/include/drivers/mmcsd_card.h | 18 +- .../drivers/include/drivers/mmcsd_cmd.h | 18 +- .../drivers/include/drivers/mmcsd_core.h | 18 +- .../drivers/include/drivers/mmcsd_host.h | 18 +- components/drivers/include/drivers/mtd.h | 4 - components/drivers/include/drivers/mtd_nand.h | 18 +- components/drivers/include/drivers/mtd_nor.h | 20 +- components/drivers/include/drivers/mtdnand.h | 4 - components/drivers/include/drivers/mtdnor.h | 4 - components/drivers/include/drivers/pin.h | 18 +- .../drivers/include/drivers/rt_drv_pwm.h | 18 +- components/drivers/include/drivers/rtc.h | 18 +- components/drivers/include/drivers/sd.h | 18 +- components/drivers/include/drivers/sdio.h | 18 +- .../drivers/include/drivers/sdio_func_ids.h | 18 +- components/drivers/include/drivers/serial.h | 18 +- components/drivers/include/drivers/spi.h | 18 +- .../drivers/include/drivers/usb_common.h | 18 +- .../drivers/include/drivers/usb_device.h | 18 +- components/drivers/include/drivers/usb_host.h | 18 +- components/drivers/include/drivers/watchdog.h | 20 +- components/drivers/include/ipc/completion.h | 8 + components/drivers/include/ipc/dataqueue.h | 8 + components/drivers/include/ipc/pipe.h | 8 + components/drivers/include/ipc/poll.h | 18 +- components/drivers/include/ipc/ringblk_buf.h | 18 +- components/drivers/include/ipc/ringbuffer.h | 209 ++++++++++++------ components/drivers/include/ipc/waitqueue.h | 18 +- components/drivers/include/ipc/workqueue.h | 8 + components/drivers/misc/pin.c | 18 +- components/drivers/misc/rt_drv_pwm.c | 18 +- components/drivers/mtd/mtd.c | 4 - components/drivers/mtd/mtd_nand.c | 18 +- components/drivers/mtd/mtd_nor.c | 20 +- components/drivers/mtd/mtdnand.c | 7 +- components/drivers/mtd/mtdnor.c | 4 - components/drivers/rtc/alarm.c | 18 +- components/drivers/rtc/rtc.c | 18 +- components/drivers/rtc/soft_rtc.c | 18 +- components/drivers/sdio/block_dev.c | 18 +- components/drivers/sdio/mmc.c | 18 +- components/drivers/sdio/mmcsd_core.c | 18 +- components/drivers/sdio/sd.c | 18 +- components/drivers/sdio/sdio.c | 18 +- components/drivers/sensors/bmi055_sensor.cpp | 10 +- components/drivers/sensors/bmi055_sensor.h | 8 +- components/drivers/sensors/mpu6050_sensor.cpp | 8 +- components/drivers/sensors/mpu6050_sensor.h | 8 +- components/drivers/sensors/sensor.cpp | 8 +- components/drivers/sensors/sensor.h | 8 +- components/drivers/serial/serial.c | 18 +- components/drivers/spi/enc28j60.c | 8 + components/drivers/spi/enc28j60.h | 8 + components/drivers/spi/spi_core.c | 18 +- components/drivers/spi/spi_dev.c | 18 +- components/drivers/spi/spi_flash.h | 18 +- components/drivers/spi/spi_flash_at45dbxx.c | 22 +- components/drivers/spi/spi_flash_at45dbxx.h | 18 +- components/drivers/spi/spi_flash_gd.c | 19 +- components/drivers/spi/spi_flash_gd.h | 18 +- components/drivers/spi/spi_flash_sfud.c | 18 +- components/drivers/spi/spi_flash_sfud.h | 18 +- components/drivers/spi/spi_flash_sst25vfxx.c | 22 +- components/drivers/spi/spi_flash_sst25vfxx.h | 18 +- components/drivers/spi/spi_flash_w25qxx.c | 20 +- components/drivers/spi/spi_flash_w25qxx.h | 18 +- components/drivers/spi/spi_flash_w25qxx_mtd.c | 10 +- components/drivers/spi/spi_flash_w25qxx_mtd.h | 18 +- components/drivers/spi/spi_msd.c | 9 +- components/drivers/spi/spi_msd.h | 9 +- components/drivers/spi/spi_wifi_rw009.c | 20 +- components/drivers/spi/spi_wifi_rw009.h | 20 +- components/drivers/src/completion.c | 18 +- components/drivers/src/dataqueue.c | 18 +- components/drivers/src/pipe.c | 18 +- components/drivers/src/ringblk_buf.c | 18 +- components/drivers/src/ringbuffer.c | 18 +- components/drivers/src/waitqueue.c | 18 +- components/drivers/src/workqueue.c | 18 +- components/drivers/usb/usbdevice/class/cdc.h | 18 +- .../drivers/usb/usbdevice/class/cdc_vcom.c | 18 +- components/drivers/usb/usbdevice/class/ecm.c | 8 +- components/drivers/usb/usbdevice/class/hid.h | 5 +- .../drivers/usb/usbdevice/class/mstorage.c | 18 +- .../drivers/usb/usbdevice/class/mstorage.h | 18 +- components/drivers/usb/usbdevice/class/ndis.h | 8 + .../drivers/usb/usbdevice/class/rndis.c | 8 +- .../drivers/usb/usbdevice/class/rndis.h | 8 +- .../drivers/usb/usbdevice/class/winusb.c | 5 +- .../drivers/usb/usbdevice/class/winusb.h | 5 +- components/drivers/usb/usbdevice/core/core.c | 18 +- components/drivers/usb/usbhost/class/adk.c | 18 +- components/drivers/usb/usbhost/class/adk.h | 18 +- components/drivers/usb/usbhost/class/hid.c | 8 +- components/drivers/usb/usbhost/class/hid.h | 8 +- components/drivers/usb/usbhost/class/mass.c | 8 +- components/drivers/usb/usbhost/class/mass.h | 8 +- components/drivers/usb/usbhost/class/udisk.c | 8 +- components/drivers/usb/usbhost/class/ukbd.c | 8 +- components/drivers/usb/usbhost/class/umouse.c | 8 +- components/drivers/usb/usbhost/core/core.c | 18 +- components/drivers/usb/usbhost/core/driver.c | 18 +- components/drivers/usb/usbhost/core/hub.c | 18 +- components/drivers/usb/usbhost/core/usbhost.c | 18 +- components/drivers/watchdog/watchdog.c | 20 +- 126 files changed, 460 insertions(+), 1630 deletions(-) diff --git a/components/drivers/audio/audio.c b/components/drivers/audio/audio.c index 220a000df1..14dddb38ea 100644 --- a/components/drivers/audio/audio.c +++ b/components/drivers/audio/audio.c @@ -1,21 +1,7 @@ /* - * File : audio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/audio/audio_pipe.c b/components/drivers/audio/audio_pipe.c index 9dc296831e..242305e204 100644 --- a/components/drivers/audio/audio_pipe.c +++ b/components/drivers/audio/audio_pipe.c @@ -1,21 +1,7 @@ /* - * File : pipe.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/audio/audio_pipe.h b/components/drivers/audio/audio_pipe.h index d40d4234b6..c34f72b019 100644 --- a/components/drivers/audio/audio_pipe.h +++ b/components/drivers/audio/audio_pipe.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __AUDIO_PIPE_H__ #define __AUDIO_PIPE_H__ diff --git a/components/drivers/can/can.c b/components/drivers/can/can.c index 98d76cd5b3..e20fcddcff 100644 --- a/components/drivers/can/can.c +++ b/components/drivers/can/can.c @@ -1,21 +1,7 @@ /* - * File : can.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/cputime/cputime.c b/components/drivers/cputime/cputime.c index 0c260f13bd..3ec860d5c5 100644 --- a/components/drivers/cputime/cputime.c +++ b/components/drivers/cputime/cputime.c @@ -1,21 +1,7 @@ /* - * File : cputime.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/cputime/cputime_cortexm.c b/components/drivers/cputime/cputime_cortexm.c index 99dc8b013e..05ed6ed447 100644 --- a/components/drivers/cputime/cputime_cortexm.c +++ b/components/drivers/cputime/cputime_cortexm.c @@ -1,21 +1,7 @@ /* - * File : cputime_cortexm.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/hwtimer/hwtimer.c b/components/drivers/hwtimer/hwtimer.c index 3f8a9a42b4..cd85b3baef 100644 --- a/components/drivers/hwtimer/hwtimer.c +++ b/components/drivers/hwtimer/hwtimer.c @@ -1,21 +1,7 @@ /* - * File : hwtimer.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/i2c/fm24clxx.c b/components/drivers/i2c/fm24clxx.c index bb77d707bf..eecf3d455a 100644 --- a/components/drivers/i2c/fm24clxx.c +++ b/components/drivers/i2c/fm24clxx.c @@ -1,21 +1,7 @@ /* - * File : fm24clxx.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/i2c/fm24clxx.h b/components/drivers/i2c/fm24clxx.h index fa84dd5e29..74ee065470 100644 --- a/components/drivers/i2c/fm24clxx.h +++ b/components/drivers/i2c/fm24clxx.h @@ -1,21 +1,7 @@ /* - * File : fm24clxx.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/i2c/i2c-bit-ops.c b/components/drivers/i2c/i2c-bit-ops.c index d4a26ea72a..26479a1d68 100644 --- a/components/drivers/i2c/i2c-bit-ops.c +++ b/components/drivers/i2c/i2c-bit-ops.c @@ -1,21 +1,7 @@ /* - * File : i2c-bit-ops.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/i2c/i2c_core.c b/components/drivers/i2c/i2c_core.c index 67778ce0d3..f245abb9ca 100644 --- a/components/drivers/i2c/i2c_core.c +++ b/components/drivers/i2c/i2c_core.c @@ -1,21 +1,7 @@ /* - * File : i2c_core.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/i2c/i2c_dev.c b/components/drivers/i2c/i2c_dev.c index 042b7b743a..6c7df8e427 100644 --- a/components/drivers/i2c/i2c_dev.c +++ b/components/drivers/i2c/i2c_dev.c @@ -1,21 +1,7 @@ /* - * File : i2c_dev.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/alarm.h b/components/drivers/include/drivers/alarm.h index 99dd8ef9b8..b5ebbc86d9 100644 --- a/components/drivers/include/drivers/alarm.h +++ b/components/drivers/include/drivers/alarm.h @@ -1,21 +1,7 @@ /* - * File : alarm.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/audio.h b/components/drivers/include/drivers/audio.h index 04821c2bc8..7d2cb36728 100644 --- a/components/drivers/include/drivers/audio.h +++ b/components/drivers/include/drivers/audio.h @@ -1,21 +1,7 @@ /* - * File : audio.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes @@ -94,7 +80,7 @@ /* Support Dsp(input/output) Units controls */ #define AUDIO_DSP_PARAM 0 /* get/set all params */ -#define AUDIO_DSP_SAMPLERATE 1 /* ²ÉÑùƵÂÊ */ +#define AUDIO_DSP_SAMPLERATE 1 /* 采样频率 */ #define AUDIO_DSP_FMT 2 #define AUDIO_DSP_CHANNELS 3 diff --git a/components/drivers/include/drivers/can.h b/components/drivers/include/drivers/can.h index ecf3b5f51e..c61fb19eaa 100644 --- a/components/drivers/include/drivers/can.h +++ b/components/drivers/include/drivers/can.h @@ -1,21 +1,7 @@ /* - * File : can.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/cputime.h b/components/drivers/include/drivers/cputime.h index c3dd243f11..78c22fc1da 100644 --- a/components/drivers/include/drivers/cputime.h +++ b/components/drivers/include/drivers/cputime.h @@ -1,21 +1,7 @@ /* - * File : cputime.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/hwtimer.h b/components/drivers/include/drivers/hwtimer.h index 24cec74d32..cbfeec2bf8 100644 --- a/components/drivers/include/drivers/hwtimer.h +++ b/components/drivers/include/drivers/hwtimer.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __HWTIMER_H__ #define __HWTIMER_H__ diff --git a/components/drivers/include/drivers/i2c-bit-ops.h b/components/drivers/include/drivers/i2c-bit-ops.h index 6360b99a92..ddf9a36d73 100644 --- a/components/drivers/include/drivers/i2c-bit-ops.h +++ b/components/drivers/include/drivers/i2c-bit-ops.h @@ -1,21 +1,7 @@ /* - * File : i2c-bit-ops.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/i2c.h b/components/drivers/include/drivers/i2c.h index b6f5273722..e2a9e7d0b8 100644 --- a/components/drivers/include/drivers/i2c.h +++ b/components/drivers/include/drivers/i2c.h @@ -1,21 +1,7 @@ /* - * File : i2c.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/i2c_dev.h b/components/drivers/include/drivers/i2c_dev.h index 81e9896bcf..5ef9dd1a8c 100644 --- a/components/drivers/include/drivers/i2c_dev.h +++ b/components/drivers/include/drivers/i2c_dev.h @@ -1,21 +1,7 @@ /* - * File : i2c_dev.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/mmc.h b/components/drivers/include/drivers/mmc.h index 6800c2a29e..95dce7178a 100644 --- a/components/drivers/include/drivers/mmc.h +++ b/components/drivers/include/drivers/mmc.h @@ -1,21 +1,7 @@ /* - * File : mmc.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/mmcsd_card.h b/components/drivers/include/drivers/mmcsd_card.h index 18470a5ea9..3ee5a20465 100644 --- a/components/drivers/include/drivers/mmcsd_card.h +++ b/components/drivers/include/drivers/mmcsd_card.h @@ -1,21 +1,7 @@ /* - * File : mmcsd_card.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/mmcsd_cmd.h b/components/drivers/include/drivers/mmcsd_cmd.h index 2700771531..7c2f26e892 100644 --- a/components/drivers/include/drivers/mmcsd_cmd.h +++ b/components/drivers/include/drivers/mmcsd_cmd.h @@ -1,21 +1,7 @@ /* - * File : mmcsd_cmd.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/mmcsd_core.h b/components/drivers/include/drivers/mmcsd_core.h index 2be758bf82..05a5af6d79 100644 --- a/components/drivers/include/drivers/mmcsd_core.h +++ b/components/drivers/include/drivers/mmcsd_core.h @@ -1,21 +1,7 @@ /* - * File : mmcsd_core.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/mmcsd_host.h b/components/drivers/include/drivers/mmcsd_host.h index 877a04d8e0..1253062aef 100644 --- a/components/drivers/include/drivers/mmcsd_host.h +++ b/components/drivers/include/drivers/mmcsd_host.h @@ -1,21 +1,7 @@ /* - * File : mmcsd_host.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/mtd.h b/components/drivers/include/drivers/mtd.h index 9cc7c470d2..fb7ea4389d 100644 --- a/components/drivers/include/drivers/mtd.h +++ b/components/drivers/include/drivers/mtd.h @@ -2,10 +2,6 @@ * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 - */ - -/* - * File : mtd.h * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/mtd_nand.h b/components/drivers/include/drivers/mtd_nand.h index fb14eb0dcc..8afed000dd 100644 --- a/components/drivers/include/drivers/mtd_nand.h +++ b/components/drivers/include/drivers/mtd_nand.h @@ -1,21 +1,7 @@ /* - * File : mtd_nand.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/mtd_nor.h b/components/drivers/include/drivers/mtd_nor.h index c51ce87f41..32a952f374 100644 --- a/components/drivers/include/drivers/mtd_nor.h +++ b/components/drivers/include/drivers/mtd_nor.h @@ -1,21 +1,7 @@ /* - * File : mtd_nor.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, Shanghai Real-Thread Technology Co., Ltd - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/mtdnand.h b/components/drivers/include/drivers/mtdnand.h index c767e4ac9c..2e836cb2fb 100644 --- a/components/drivers/include/drivers/mtdnand.h +++ b/components/drivers/include/drivers/mtdnand.h @@ -2,10 +2,6 @@ * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 - */ - -/* - * File : mtdnand.h * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/mtdnor.h b/components/drivers/include/drivers/mtdnor.h index 709efe29a4..ccb7466b4b 100644 --- a/components/drivers/include/drivers/mtdnor.h +++ b/components/drivers/include/drivers/mtdnor.h @@ -2,10 +2,6 @@ * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 - */ - -/* - * File : mtdnor.h * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/pin.h b/components/drivers/include/drivers/pin.h index de8fd21acc..ca35407932 100644 --- a/components/drivers/include/drivers/pin.h +++ b/components/drivers/include/drivers/pin.h @@ -1,21 +1,7 @@ /* - * File : pin.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/rt_drv_pwm.h b/components/drivers/include/drivers/rt_drv_pwm.h index 0aa2f56656..16de4c6ab8 100644 --- a/components/drivers/include/drivers/rt_drv_pwm.h +++ b/components/drivers/include/drivers/rt_drv_pwm.h @@ -1,21 +1,7 @@ /* - * File : rt_drv_pwm.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/rtc.h b/components/drivers/include/drivers/rtc.h index 7e89bd3704..1cd88a7be3 100644 --- a/components/drivers/include/drivers/rtc.h +++ b/components/drivers/include/drivers/rtc.h @@ -1,21 +1,7 @@ /* - * File : rtc.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/sd.h b/components/drivers/include/drivers/sd.h index 7d5fcacade..e096df9372 100644 --- a/components/drivers/include/drivers/sd.h +++ b/components/drivers/include/drivers/sd.h @@ -1,21 +1,7 @@ /* - * File : sd.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/sdio.h b/components/drivers/include/drivers/sdio.h index 2cd1c7dfd1..e4bf4a048f 100644 --- a/components/drivers/include/drivers/sdio.h +++ b/components/drivers/include/drivers/sdio.h @@ -1,21 +1,7 @@ /* - * File : sdio.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/sdio_func_ids.h b/components/drivers/include/drivers/sdio_func_ids.h index 9fee7c238a..79085a5933 100644 --- a/components/drivers/include/drivers/sdio_func_ids.h +++ b/components/drivers/include/drivers/sdio_func_ids.h @@ -1,21 +1,7 @@ /* - * File : sdio_func_ids.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/serial.h b/components/drivers/include/drivers/serial.h index 2abf925854..af5d626251 100644 --- a/components/drivers/include/drivers/serial.h +++ b/components/drivers/include/drivers/serial.h @@ -1,21 +1,7 @@ /* - * File : serial.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/spi.h b/components/drivers/include/drivers/spi.h index 0fbaabe5dd..84b589ace0 100644 --- a/components/drivers/include/drivers/spi.h +++ b/components/drivers/include/drivers/spi.h @@ -1,21 +1,7 @@ /* - * File : spi.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/usb_common.h b/components/drivers/include/drivers/usb_common.h index 922682b1af..7398fc3814 100644 --- a/components/drivers/include/drivers/usb_common.h +++ b/components/drivers/include/drivers/usb_common.h @@ -1,21 +1,7 @@ /* - * File : usb_common.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/usb_device.h b/components/drivers/include/drivers/usb_device.h index 572c7d0dff..cb4122fdaf 100644 --- a/components/drivers/include/drivers/usb_device.h +++ b/components/drivers/include/drivers/usb_device.h @@ -1,21 +1,7 @@ /* - * File : usb_device.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/usb_host.h b/components/drivers/include/drivers/usb_host.h index 92adaa3d47..2a68f4edb5 100644 --- a/components/drivers/include/drivers/usb_host.h +++ b/components/drivers/include/drivers/usb_host.h @@ -1,21 +1,7 @@ /* - * File : usb_host.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/drivers/watchdog.h b/components/drivers/include/drivers/watchdog.h index 5c74dc82be..f80ded58aa 100644 --- a/components/drivers/include/drivers/watchdog.h +++ b/components/drivers/include/drivers/watchdog.h @@ -1,21 +1,7 @@ /* - * File : watchdog.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012-2014, Shanghai Real-Thread Electronic Technology Co.,Ltd - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/ipc/completion.h b/components/drivers/include/ipc/completion.h index e3e883ba8b..acfcaa3995 100644 --- a/components/drivers/include/ipc/completion.h +++ b/components/drivers/include/ipc/completion.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef COMPLETION_H_ #define COMPLETION_H_ diff --git a/components/drivers/include/ipc/dataqueue.h b/components/drivers/include/ipc/dataqueue.h index 44ffed655e..f584c267bf 100644 --- a/components/drivers/include/ipc/dataqueue.h +++ b/components/drivers/include/ipc/dataqueue.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef DATAQUEUE_H__ #define DATAQUEUE_H__ diff --git a/components/drivers/include/ipc/pipe.h b/components/drivers/include/ipc/pipe.h index ca20c2a453..25b19f540d 100644 --- a/components/drivers/include/ipc/pipe.h +++ b/components/drivers/include/ipc/pipe.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef PIPE_H__ #define PIPE_H__ diff --git a/components/drivers/include/ipc/poll.h b/components/drivers/include/ipc/poll.h index 0279fe3b5d..8c68a96af8 100644 --- a/components/drivers/include/ipc/poll.h +++ b/components/drivers/include/ipc/poll.h @@ -1,21 +1,7 @@ /* - * File : poll.h - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2006-2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/ipc/ringblk_buf.h b/components/drivers/include/ipc/ringblk_buf.h index 26ffbdbe21..653fa2a60b 100644 --- a/components/drivers/include/ipc/ringblk_buf.h +++ b/components/drivers/include/ipc/ringblk_buf.h @@ -1,21 +1,7 @@ /* - * File : ringblk_buf.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/ipc/ringbuffer.h b/components/drivers/include/ipc/ringbuffer.h index 4cfab6d69c..70d49cfe88 100644 --- a/components/drivers/include/ipc/ringbuffer.h +++ b/components/drivers/include/ipc/ringbuffer.h @@ -1,81 +1,160 @@ #ifndef RINGBUFFER_H__ +#ifndef RINGBUFFER_H__ #define RINGBUFFER_H__ +#define RINGBUFFER_H__ + #ifdef __cplusplus +#ifdef __cplusplus +extern "C" { extern "C" { #endif - -#include - -/* ring buffer */ -struct rt_ringbuffer -{ - rt_uint8_t *buffer_ptr; - /* use the msb of the {read,write}_index as mirror bit. You can see this as - * if the buffer adds a virtual mirror and the pointers point either to the - * normal or to the mirrored buffer. If the write_index has the same value - * with the read_index, but in a different mirror, the buffer is full. - * While if the write_index and the read_index are the same and within the - * same mirror, the buffer is empty. The ASCII art of the ringbuffer is: - * - * mirror = 0 mirror = 1 - * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 ||| 0 | 1 | 2 | 3 | 4 | 5 | 6 | Full - * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ - * read_idx-^ write_idx-^ - * - * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 ||| 0 | 1 | 2 | 3 | 4 | 5 | 6 | Empty - * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ - * read_idx-^ ^-write_idx - * - * The tradeoff is we could only use 32KiB of buffer for 16 bit of index. - * But it should be enough for most of the cases. - * - * Ref: http://en.wikipedia.org/wiki/Circular_buffer#Mirroring */ - rt_uint16_t read_mirror : 1; - rt_uint16_t read_index : 15; - rt_uint16_t write_mirror : 1; - rt_uint16_t write_index : 15; - /* as we use msb of index as mirror bit, the size should be signed and - * could only be positive. */ - rt_int16_t buffer_size; -}; - -enum rt_ringbuffer_state -{ - RT_RINGBUFFER_EMPTY, - RT_RINGBUFFER_FULL, - /* half full is neither full nor empty */ - RT_RINGBUFFER_HALFFULL, -}; - -/** - * RingBuffer for DeviceDriver - * - * Please note that the ring buffer implementation of RT-Thread - * has no thread wait or resume feature. - */ -void rt_ringbuffer_init(struct rt_ringbuffer *rb, rt_uint8_t *pool, rt_int16_t size); -void rt_ringbuffer_reset(struct rt_ringbuffer *rb); -rt_size_t rt_ringbuffer_put(struct rt_ringbuffer *rb, const rt_uint8_t *ptr, rt_uint16_t length); -rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb, const rt_uint8_t *ptr, rt_uint16_t length); -rt_size_t rt_ringbuffer_putchar(struct rt_ringbuffer *rb, const rt_uint8_t ch); -rt_size_t rt_ringbuffer_putchar_force(struct rt_ringbuffer *rb, const rt_uint8_t ch); -rt_size_t rt_ringbuffer_get(struct rt_ringbuffer *rb, rt_uint8_t *ptr, rt_uint16_t length); -rt_size_t rt_ringbuffer_getchar(struct rt_ringbuffer *rb, rt_uint8_t *ch); -rt_size_t rt_ringbuffer_data_len(struct rt_ringbuffer *rb); - -#ifdef RT_USING_HEAP -struct rt_ringbuffer* rt_ringbuffer_create(rt_uint16_t length); -void rt_ringbuffer_destroy(struct rt_ringbuffer *rb); #endif + +#include +#include + + +/* ring buffer */ +/* ring buffer */ +struct rt_ringbuffer +struct rt_ringbuffer +{ +{ + rt_uint8_t *buffer_ptr; + rt_uint8_t *buffer_ptr; + /* use the msb of the {read,write}_index as mirror bit. You can see this as + /* use the msb of the {read,write}_index as mirror bit. You can see this as + * if the buffer adds a virtual mirror and the pointers point either to the + * if the buffer adds a virtual mirror and the pointers point either to the + * normal or to the mirrored buffer. If the write_index has the same value + * normal or to the mirrored buffer. If the write_index has the same value + * with the read_index, but in a different mirror, the buffer is full. + * with the read_index, but in a different mirror, the buffer is full. + * While if the write_index and the read_index are the same and within the + * While if the write_index and the read_index are the same and within the + * same mirror, the buffer is empty. The ASCII art of the ringbuffer is: + * same mirror, the buffer is empty. The ASCII art of the ringbuffer is: + * + * + * mirror = 0 mirror = 1 + * mirror = 0 mirror = 1 + * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ + * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ + * | 0 | 1 | 2 | 3 | 4 | 5 | 6 ||| 0 | 1 | 2 | 3 | 4 | 5 | 6 | Full + * | 0 | 1 | 2 | 3 | 4 | 5 | 6 ||| 0 | 1 | 2 | 3 | 4 | 5 | 6 | Full + * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ + * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ + * read_idx-^ write_idx-^ + * read_idx-^ write_idx-^ + * + * + * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ + * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ + * | 0 | 1 | 2 | 3 | 4 | 5 | 6 ||| 0 | 1 | 2 | 3 | 4 | 5 | 6 | Empty + * | 0 | 1 | 2 | 3 | 4 | 5 | 6 ||| 0 | 1 | 2 | 3 | 4 | 5 | 6 | Empty + * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ + * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ + * read_idx-^ ^-write_idx + * read_idx-^ ^-write_idx + * + * + * The tradeoff is we could only use 32KiB of buffer for 16 bit of index. + * The tradeoff is we could only use 32KiB of buffer for 16 bit of index. + * But it should be enough for most of the cases. + * But it should be enough for most of the cases. + * + * + * Ref: http://en.wikipedia.org/wiki/Circular_buffer#Mirroring */ + * Ref: http://en.wikipedia.org/wiki/Circular_buffer#Mirroring */ + rt_uint16_t read_mirror : 1; + rt_uint16_t read_mirror : 1; + rt_uint16_t read_index : 15; + rt_uint16_t read_index : 15; + rt_uint16_t write_mirror : 1; + rt_uint16_t write_mirror : 1; + rt_uint16_t write_index : 15; + rt_uint16_t write_index : 15; + /* as we use msb of index as mirror bit, the size should be signed and + /* as we use msb of index as mirror bit, the size should be signed and + * could only be positive. */ + * could only be positive. */ + rt_int16_t buffer_size; + rt_int16_t buffer_size; +}; +}; + + +enum rt_ringbuffer_state +enum rt_ringbuffer_state +{ +{ + RT_RINGBUFFER_EMPTY, + RT_RINGBUFFER_EMPTY, + RT_RINGBUFFER_FULL, + RT_RINGBUFFER_FULL, + /* half full is neither full nor empty */ + /* half full is neither full nor empty */ + RT_RINGBUFFER_HALFFULL, + RT_RINGBUFFER_HALFFULL, +}; +}; + + +/** +/** + * RingBuffer for DeviceDriver + * RingBuffer for DeviceDriver + * + * + * Please note that the ring buffer implementation of RT-Thread + * Please note that the ring buffer implementation of RT-Thread + * has no thread wait or resume feature. + * has no thread wait or resume feature. + */ + */ +void rt_ringbuffer_init(struct rt_ringbuffer *rb, rt_uint8_t *pool, rt_int16_t size); +void rt_ringbuffer_init(struct rt_ringbuffer *rb, rt_uint8_t *pool, rt_int16_t size); +void rt_ringbuffer_reset(struct rt_ringbuffer *rb); +void rt_ringbuffer_reset(struct rt_ringbuffer *rb); +rt_size_t rt_ringbuffer_put(struct rt_ringbuffer *rb, const rt_uint8_t *ptr, rt_uint16_t length); +rt_size_t rt_ringbuffer_put(struct rt_ringbuffer *rb, const rt_uint8_t *ptr, rt_uint16_t length); +rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb, const rt_uint8_t *ptr, rt_uint16_t length); +rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb, const rt_uint8_t *ptr, rt_uint16_t length); +rt_size_t rt_ringbuffer_putchar(struct rt_ringbuffer *rb, const rt_uint8_t ch); +rt_size_t rt_ringbuffer_putchar(struct rt_ringbuffer *rb, const rt_uint8_t ch); +rt_size_t rt_ringbuffer_putchar_force(struct rt_ringbuffer *rb, const rt_uint8_t ch); +rt_size_t rt_ringbuffer_putchar_force(struct rt_ringbuffer *rb, const rt_uint8_t ch); +rt_size_t rt_ringbuffer_get(struct rt_ringbuffer *rb, rt_uint8_t *ptr, rt_uint16_t length); +rt_size_t rt_ringbuffer_get(struct rt_ringbuffer *rb, rt_uint8_t *ptr, rt_uint16_t length); +rt_size_t rt_ringbuffer_getchar(struct rt_ringbuffer *rb, rt_uint8_t *ch); +rt_size_t rt_ringbuffer_getchar(struct rt_ringbuffer *rb, rt_uint8_t *ch); +rt_size_t rt_ringbuffer_data_len(struct rt_ringbuffer *rb); +rt_size_t rt_ringbuffer_data_len(struct rt_ringbuffer *rb); + + +#ifdef RT_USING_HEAP +#ifdef RT_USING_HEAP +struct rt_ringbuffer* rt_ringbuffer_create(rt_uint16_t length); +struct rt_ringbuffer* rt_ringbuffer_create(rt_uint16_t length); +void rt_ringbuffer_destroy(struct rt_ringbuffer *rb); +void rt_ringbuffer_destroy(struct rt_ringbuffer *rb); +#endif +#endif + + +rt_inline rt_uint16_t rt_ringbuffer_get_size(struct rt_ringbuffer *rb) rt_inline rt_uint16_t rt_ringbuffer_get_size(struct rt_ringbuffer *rb) { +{ + RT_ASSERT(rb != RT_NULL); RT_ASSERT(rb != RT_NULL); return rb->buffer_size; + return rb->buffer_size; } +} + /** return the size of empty space in rb */ #define rt_ringbuffer_space_len(rb) ((rb)->buffer_size - rt_ringbuffer_data_len(rb)) diff --git a/components/drivers/include/ipc/waitqueue.h b/components/drivers/include/ipc/waitqueue.h index 8cb0989f73..e26ec1e896 100644 --- a/components/drivers/include/ipc/waitqueue.h +++ b/components/drivers/include/ipc/waitqueue.h @@ -1,21 +1,7 @@ /* - * File : waitqueue.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/include/ipc/workqueue.h b/components/drivers/include/ipc/workqueue.h index 0b044b5ad3..9e23e181b1 100644 --- a/components/drivers/include/ipc/workqueue.h +++ b/components/drivers/include/ipc/workqueue.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef WORKQUEUE_H__ #define WORKQUEUE_H__ diff --git a/components/drivers/misc/pin.c b/components/drivers/misc/pin.c index ce78f97f87..aca58ee21b 100644 --- a/components/drivers/misc/pin.c +++ b/components/drivers/misc/pin.c @@ -1,21 +1,7 @@ /* - * File : pin.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/misc/rt_drv_pwm.c b/components/drivers/misc/rt_drv_pwm.c index 3a2da0d095..6890e0e793 100644 --- a/components/drivers/misc/rt_drv_pwm.c +++ b/components/drivers/misc/rt_drv_pwm.c @@ -1,21 +1,7 @@ /* - * File : rt_drv_pwm.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/mtd/mtd.c b/components/drivers/mtd/mtd.c index 4d36ea0b0b..3e7b4f2b54 100644 --- a/components/drivers/mtd/mtd.c +++ b/components/drivers/mtd/mtd.c @@ -2,10 +2,6 @@ * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 - */ - -/* - * File : mtd.c * * Change Logs: * Date Author Notes diff --git a/components/drivers/mtd/mtd_nand.c b/components/drivers/mtd/mtd_nand.c index bf22d889ce..3e4582ceaf 100644 --- a/components/drivers/mtd/mtd_nand.c +++ b/components/drivers/mtd/mtd_nand.c @@ -1,21 +1,7 @@ /* - * File : mtd_core.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/mtd/mtd_nor.c b/components/drivers/mtd/mtd_nor.c index 8f37e95f09..b941f9236d 100644 --- a/components/drivers/mtd/mtd_nor.c +++ b/components/drivers/mtd/mtd_nor.c @@ -1,21 +1,7 @@ /* - * File : mtd_nor.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, Shanghai Real-Thread Technology Co., Ltd - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/mtd/mtdnand.c b/components/drivers/mtd/mtdnand.c index c209ea3279..50012219fb 100644 --- a/components/drivers/mtd/mtdnand.c +++ b/components/drivers/mtd/mtdnand.c @@ -2,15 +2,10 @@ * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 - */ - -/* - * File : mtdnand.c * * Change Logs: * Date Author Notes - 2018-09-10 heyuanjie87 first version - + * 2018-09-10 heyuanjie87 first version */ #include diff --git a/components/drivers/mtd/mtdnor.c b/components/drivers/mtd/mtdnor.c index e97f48e65c..481d26167e 100644 --- a/components/drivers/mtd/mtdnor.c +++ b/components/drivers/mtd/mtdnor.c @@ -2,10 +2,6 @@ * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 - */ - -/* - * File : mtdnor.c * * Change Logs: * Date Author Notes diff --git a/components/drivers/rtc/alarm.c b/components/drivers/rtc/alarm.c index 6660128603..c497ebf727 100644 --- a/components/drivers/rtc/alarm.c +++ b/components/drivers/rtc/alarm.c @@ -1,21 +1,7 @@ /* - * File : alarm.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/rtc/rtc.c b/components/drivers/rtc/rtc.c index 000358c111..e17c0fe7dd 100644 --- a/components/drivers/rtc/rtc.c +++ b/components/drivers/rtc/rtc.c @@ -1,21 +1,7 @@ /* - * File : rtc.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/rtc/soft_rtc.c b/components/drivers/rtc/soft_rtc.c index c828e43ebc..adcbf81fe3 100644 --- a/components/drivers/rtc/soft_rtc.c +++ b/components/drivers/rtc/soft_rtc.c @@ -1,21 +1,7 @@ /* - * File : soft_rtc.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/sdio/block_dev.c b/components/drivers/sdio/block_dev.c index cc4e24e3c8..9bef67d950 100644 --- a/components/drivers/sdio/block_dev.c +++ b/components/drivers/sdio/block_dev.c @@ -1,21 +1,7 @@ /* - * File : block_dev.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/sdio/mmc.c b/components/drivers/sdio/mmc.c index efda67c087..7ad01e1153 100644 --- a/components/drivers/sdio/mmc.c +++ b/components/drivers/sdio/mmc.c @@ -1,21 +1,7 @@ /* - * File : mmc.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/sdio/mmcsd_core.c b/components/drivers/sdio/mmcsd_core.c index 45ec1343f2..29a8ba239b 100644 --- a/components/drivers/sdio/mmcsd_core.c +++ b/components/drivers/sdio/mmcsd_core.c @@ -1,21 +1,7 @@ /* - * File : mmcsd_core.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/sdio/sd.c b/components/drivers/sdio/sd.c index 2a549ed929..338ecfa7c5 100644 --- a/components/drivers/sdio/sd.c +++ b/components/drivers/sdio/sd.c @@ -1,21 +1,7 @@ /* - * File : sd.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/sdio/sdio.c b/components/drivers/sdio/sdio.c index dc3ddc7e1c..7eeb312f6f 100644 --- a/components/drivers/sdio/sdio.c +++ b/components/drivers/sdio/sdio.c @@ -1,21 +1,7 @@ /* - * File : sdio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/sensors/bmi055_sensor.cpp b/components/drivers/sensors/bmi055_sensor.cpp index 705895f368..b6e7f99da5 100644 --- a/components/drivers/sensors/bmi055_sensor.cpp +++ b/components/drivers/sensors/bmi055_sensor.cpp @@ -1,11 +1,7 @@ /* - * File : bmi055_sensor.cpp - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes @@ -137,7 +133,7 @@ BMI055_Accelerometer::BMI055_Accelerometer(const char* iic_name, int addr) write_reg(BMI055_BGW_SOFTRESET, 0xB6); /* reset of the sensor P57 */ write_reg(BMI055_PMU_LPW, 0x00); /* PMU_LPW NORMAL mode P55 */ write_reg(BMI055_PMU_BW, 0x0A); /* 01010b 31.25 Hz P55 */ - write_reg(BMI055_PMU_RANGE, 0x05); /* 0101b ±4g range PMU_RANGE set acc +-4g/s P54 */ + write_reg(BMI055_PMU_RANGE, 0x05); /* 0101b å¤4g range PMU_RANGE set acc +-4g/s P54 */ x_offset = y_offset = z_offset = 0; diff --git a/components/drivers/sensors/bmi055_sensor.h b/components/drivers/sensors/bmi055_sensor.h index 7ec6d9e5cf..713aa74ad0 100644 --- a/components/drivers/sensors/bmi055_sensor.h +++ b/components/drivers/sensors/bmi055_sensor.h @@ -1,11 +1,7 @@ /* - * File : bmi055_sensor.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/sensors/mpu6050_sensor.cpp b/components/drivers/sensors/mpu6050_sensor.cpp index 8f6557a7ce..358796bc30 100644 --- a/components/drivers/sensors/mpu6050_sensor.cpp +++ b/components/drivers/sensors/mpu6050_sensor.cpp @@ -1,11 +1,7 @@ /* - * File : MPU6050_sensor.cpp - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/sensors/mpu6050_sensor.h b/components/drivers/sensors/mpu6050_sensor.h index c7e28ba28e..8f70c3e5ed 100644 --- a/components/drivers/sensors/mpu6050_sensor.h +++ b/components/drivers/sensors/mpu6050_sensor.h @@ -1,11 +1,7 @@ /* - * File : MPU6050_sensor.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/sensors/sensor.cpp b/components/drivers/sensors/sensor.cpp index abeecdb883..f986510f63 100644 --- a/components/drivers/sensors/sensor.cpp +++ b/components/drivers/sensors/sensor.cpp @@ -1,11 +1,7 @@ /* - * File : sensors.cpp - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/sensors/sensor.h b/components/drivers/sensors/sensor.h index fd44611f5a..916360d34b 100644 --- a/components/drivers/sensors/sensor.h +++ b/components/drivers/sensors/sensor.h @@ -1,11 +1,7 @@ /* - * File : sensors.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/serial/serial.c b/components/drivers/serial/serial.c index 856e33e979..9cf9abf701 100644 --- a/components/drivers/serial/serial.c +++ b/components/drivers/serial/serial.c @@ -1,21 +1,7 @@ /* - * File : serial.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/enc28j60.c b/components/drivers/spi/enc28j60.c index f579dd8fdd..a8bfe3a159 100644 --- a/components/drivers/spi/enc28j60.c +++ b/components/drivers/spi/enc28j60.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include "enc28j60.h" /* #define NET_TRACE */ diff --git a/components/drivers/spi/enc28j60.h b/components/drivers/spi/enc28j60.h index 1207efdec6..adff774748 100644 --- a/components/drivers/spi/enc28j60.h +++ b/components/drivers/spi/enc28j60.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef EN28J60_H_INCLUDED #define EN28J60_H_INCLUDED diff --git a/components/drivers/spi/spi_core.c b/components/drivers/spi/spi_core.c index 33d2f40f8f..9e404d7c94 100644 --- a/components/drivers/spi/spi_core.c +++ b/components/drivers/spi/spi_core.c @@ -1,21 +1,7 @@ /* - * File : spi_core.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_dev.c b/components/drivers/spi/spi_dev.c index 1e69ebe591..e334e7aeb5 100644 --- a/components/drivers/spi/spi_dev.c +++ b/components/drivers/spi/spi_dev.c @@ -1,21 +1,7 @@ /* - * File : spi_dev.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_flash.h b/components/drivers/spi/spi_flash.h index d4beb57b45..30db32474a 100644 --- a/components/drivers/spi/spi_flash.h +++ b/components/drivers/spi/spi_flash.h @@ -1,21 +1,7 @@ /* - * File : spi_flash.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_flash_at45dbxx.c b/components/drivers/spi/spi_flash_at45dbxx.c index 8798e35cf6..0a30f0a328 100644 --- a/components/drivers/spi/spi_flash_at45dbxx.c +++ b/components/drivers/spi/spi_flash_at45dbxx.c @@ -1,21 +1,7 @@ /* - * File : spi_flash_at45dbxx.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes @@ -34,7 +20,7 @@ #define FLASH_TRACE(...) #endif /**< #ifdef FLASH_DEBUG */ -/* JEDEC Manufacturer¡¯s ID */ +/* JEDEC Manufacturer’s ID */ #define MF_ID (0x1F) /* atmel */ #define DENSITY_CODE_011D (0x02) /* AT45DB011D Density Code : 00010 = 1-Mbit */ #define DENSITY_CODE_021D (0x03) /* AT45DB021D Density Code : 00011 = 2-Mbit */ @@ -345,7 +331,7 @@ rt_err_t at45dbxx_init(const char * flash_device_name, const char * spi_device_n /**< 001 = Atmel DataFlash */ if(JEDEC_ID->manufacturer_id != 0x1F || JEDEC_ID->family_code != 0x01) { - FLASH_TRACE("Manufacturer¡¯s ID or Memory Type error!\r\n"); + FLASH_TRACE("Manufacturer’s ID or Memory Type error!\r\n"); FLASH_TRACE("JEDEC Read-ID Data : %02X %02X %02X\r\n", id_recv[0], id_recv[1], id_recv[2]); return -RT_ENOSYS; } diff --git a/components/drivers/spi/spi_flash_at45dbxx.h b/components/drivers/spi/spi_flash_at45dbxx.h index 203a1d3ba9..d1bc1a2aeb 100644 --- a/components/drivers/spi/spi_flash_at45dbxx.h +++ b/components/drivers/spi/spi_flash_at45dbxx.h @@ -1,21 +1,7 @@ /* - * File : spi_flash_at45dbxx.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_flash_gd.c b/components/drivers/spi/spi_flash_gd.c index a8e8f9a4b8..3c52035372 100644 --- a/components/drivers/spi/spi_flash_gd.c +++ b/components/drivers/spi/spi_flash_gd.c @@ -1,22 +1,7 @@ /* - * File : spi_flash_gd.c - * This file is part of RT-Thread RTOS - * Copyright (c) 2016 Shanghai Fullhan Microelectronics Co., Ltd. - * All rights reserved + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_flash_gd.h b/components/drivers/spi/spi_flash_gd.h index 4a12100b74..904d976ed0 100644 --- a/components/drivers/spi/spi_flash_gd.h +++ b/components/drivers/spi/spi_flash_gd.h @@ -1,21 +1,7 @@ /* - * File : spi_flash_gd.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_flash_sfud.c b/components/drivers/spi/spi_flash_sfud.c index 9859cb0141..e622527d7a 100644 --- a/components/drivers/spi/spi_flash_sfud.c +++ b/components/drivers/spi/spi_flash_sfud.c @@ -1,21 +1,7 @@ /* - * File : spi_flash_sfud.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_flash_sfud.h b/components/drivers/spi/spi_flash_sfud.h index 2c7f8e7f54..3173b9786d 100644 --- a/components/drivers/spi/spi_flash_sfud.h +++ b/components/drivers/spi/spi_flash_sfud.h @@ -1,21 +1,7 @@ /* - * File : spi_flash_sfud.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_flash_sst25vfxx.c b/components/drivers/spi/spi_flash_sst25vfxx.c index 35dcf3fff7..bd618a8e9b 100644 --- a/components/drivers/spi/spi_flash_sst25vfxx.c +++ b/components/drivers/spi/spi_flash_sst25vfxx.c @@ -1,21 +1,7 @@ /* - * File : spi_flash_sst25vfxx.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes @@ -33,7 +19,7 @@ #define FLASH_TRACE(...) #endif /* #ifdef FLASH_DEBUG */ -/* JEDEC Manufacturer¡¯s ID */ +/* JEDEC Manufacturer’s ID */ #define MF_ID (0xBF) /* JEDEC Device ID : Memory Type */ #define MT_ID (0x25) @@ -302,7 +288,7 @@ rt_err_t sst25vfxx_init(const char * flash_device_name, const char * spi_device_ if(id_recv[0] != MF_ID || id_recv[1] != MT_ID) { - FLASH_TRACE("Manufacturer¡¯s ID or Memory Type error!\r\n"); + FLASH_TRACE("Manufacturer’s ID or Memory Type error!\r\n"); FLASH_TRACE("JEDEC Read-ID Data : %02X %02X %02X\r\n", id_recv[0], id_recv[1], id_recv[2]); return -RT_ENOSYS; } diff --git a/components/drivers/spi/spi_flash_sst25vfxx.h b/components/drivers/spi/spi_flash_sst25vfxx.h index 2502188b91..7a7283f753 100644 --- a/components/drivers/spi/spi_flash_sst25vfxx.h +++ b/components/drivers/spi/spi_flash_sst25vfxx.h @@ -1,21 +1,7 @@ /* - * File : spi_flash_sst25vxx.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_flash_w25qxx.c b/components/drivers/spi/spi_flash_w25qxx.c index 5a16ffbae2..2773539fbc 100644 --- a/components/drivers/spi/spi_flash_w25qxx.c +++ b/components/drivers/spi/spi_flash_w25qxx.c @@ -1,21 +1,7 @@ /* - * File : spi_flash_w25qxx.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes @@ -41,7 +27,7 @@ #define PAGE_SIZE 4096 -/* JEDEC Manufacturer��s ID */ +/* JEDEC Manufacturer锟斤拷s ID */ #define MF_ID (0xEF) /* JEDEC Device ID: Memory type and Capacity */ diff --git a/components/drivers/spi/spi_flash_w25qxx.h b/components/drivers/spi/spi_flash_w25qxx.h index 737ca70ed2..14837bc87c 100644 --- a/components/drivers/spi/spi_flash_w25qxx.h +++ b/components/drivers/spi/spi_flash_w25qxx.h @@ -1,21 +1,7 @@ /* - * File : spi_flash_w25qxx.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_flash_w25qxx_mtd.c b/components/drivers/spi/spi_flash_w25qxx_mtd.c index dd3e59f409..9f1ef802f6 100644 --- a/components/drivers/spi/spi_flash_w25qxx_mtd.c +++ b/components/drivers/spi/spi_flash_w25qxx_mtd.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include @@ -17,7 +25,7 @@ #define FLASH_TRACE(...) #endif /* #ifdef FLASH_DEBUG */ -/* JEDEC Manufacturer¡¯s ID */ +/* JEDEC Manufacturer’s ID */ #define MF_ID (0xEF) /* JEDEC Device ID: Memory type and Capacity */ #define MTC_W25Q80_BV (0x4014) /* W25Q80BV */ diff --git a/components/drivers/spi/spi_flash_w25qxx_mtd.h b/components/drivers/spi/spi_flash_w25qxx_mtd.h index 9157524673..28f6828ffb 100644 --- a/components/drivers/spi/spi_flash_w25qxx_mtd.h +++ b/components/drivers/spi/spi_flash_w25qxx_mtd.h @@ -1,21 +1,7 @@ /* - * File : spi_flash_w25qxx.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_msd.c b/components/drivers/spi/spi_msd.c index a3046e14ba..ed121e184d 100644 --- a/components/drivers/spi/spi_msd.c +++ b/components/drivers/spi/spi_msd.c @@ -1,12 +1,7 @@ /* - * File : msd.c - * SPI mode SD Card Driver - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_msd.h b/components/drivers/spi/spi_msd.h index 98722711d3..6370170923 100644 --- a/components/drivers/spi/spi_msd.h +++ b/components/drivers/spi/spi_msd.h @@ -1,12 +1,7 @@ /* - * File : msd.h - * SPI mode SD Card Driver - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_wifi_rw009.c b/components/drivers/spi/spi_wifi_rw009.c index 0b92802383..4ddd18ca12 100644 --- a/components/drivers/spi/spi_wifi_rw009.c +++ b/components/drivers/spi/spi_wifi_rw009.c @@ -1,21 +1,7 @@ /* - * File : spi_wifi_rw009.c - * This file is part of RT-Thread RTOS - * Copyright by Shanghai Real-Thread Electronic Technology Co.,Ltd - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/spi/spi_wifi_rw009.h b/components/drivers/spi/spi_wifi_rw009.h index 4b684b9b24..049b0a8486 100644 --- a/components/drivers/spi/spi_wifi_rw009.h +++ b/components/drivers/spi/spi_wifi_rw009.h @@ -1,21 +1,7 @@ /* - * File : spi_wifi_rw009.h - * This file is part of RT-Thread RTOS - * Copyright by Shanghai Real-Thread Electronic Technology Co.,Ltd - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/src/completion.c b/components/drivers/src/completion.c index ef0b2911a7..9e461e49ce 100644 --- a/components/drivers/src/completion.c +++ b/components/drivers/src/completion.c @@ -1,21 +1,7 @@ /* - * File : completion.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/src/dataqueue.c b/components/drivers/src/dataqueue.c index a10b0805b4..7553986b9f 100644 --- a/components/drivers/src/dataqueue.c +++ b/components/drivers/src/dataqueue.c @@ -1,21 +1,7 @@ /* - * File : dataqueue.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/src/pipe.c b/components/drivers/src/pipe.c index 80d74657e0..065fd21dc1 100644 --- a/components/drivers/src/pipe.c +++ b/components/drivers/src/pipe.c @@ -1,21 +1,7 @@ /* - * File : pipe.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012-2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/src/ringblk_buf.c b/components/drivers/src/ringblk_buf.c index 1212b088d8..1a74bf1d24 100644 --- a/components/drivers/src/ringblk_buf.c +++ b/components/drivers/src/ringblk_buf.c @@ -1,21 +1,7 @@ /* - * File : ringblk_buf.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/src/ringbuffer.c b/components/drivers/src/ringbuffer.c index 48bf590f8c..2e078ae053 100644 --- a/components/drivers/src/ringbuffer.c +++ b/components/drivers/src/ringbuffer.c @@ -1,21 +1,7 @@ /* - * File : ringbuffer.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/src/waitqueue.c b/components/drivers/src/waitqueue.c index a4c392a27c..02240edbdf 100644 --- a/components/drivers/src/waitqueue.c +++ b/components/drivers/src/waitqueue.c @@ -1,21 +1,7 @@ /* - * File : waitqueue.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/src/workqueue.c b/components/drivers/src/workqueue.c index 35aaafe133..158ea8b69b 100644 --- a/components/drivers/src/workqueue.c +++ b/components/drivers/src/workqueue.c @@ -1,21 +1,7 @@ /* - * File : workqueue.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbdevice/class/cdc.h b/components/drivers/usb/usbdevice/class/cdc.h index dd919f51fe..4e07f16266 100644 --- a/components/drivers/usb/usbdevice/class/cdc.h +++ b/components/drivers/usb/usbdevice/class/cdc.h @@ -1,21 +1,7 @@ /* - * File : cdc.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbdevice/class/cdc_vcom.c b/components/drivers/usb/usbdevice/class/cdc_vcom.c index eaff09c5d7..119e283898 100644 --- a/components/drivers/usb/usbdevice/class/cdc_vcom.c +++ b/components/drivers/usb/usbdevice/class/cdc_vcom.c @@ -1,21 +1,7 @@ /* - * File : cdc_vcom.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbdevice/class/ecm.c b/components/drivers/usb/usbdevice/class/ecm.c index 76c7d987b8..cda1a8bf1b 100644 --- a/components/drivers/usb/usbdevice/class/ecm.c +++ b/components/drivers/usb/usbdevice/class/ecm.c @@ -1,11 +1,7 @@ /* - * File : ecm.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbdevice/class/hid.h b/components/drivers/usb/usbdevice/class/hid.h index 4e5dac964b..4d0f314a11 100644 --- a/components/drivers/usb/usbdevice/class/hid.h +++ b/components/drivers/usb/usbdevice/class/hid.h @@ -1,6 +1,7 @@ /* - * File : hid.h - * COPYRIGHT (C) 2008 - 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbdevice/class/mstorage.c b/components/drivers/usb/usbdevice/class/mstorage.c index 97ff30c5d2..5131f83840 100644 --- a/components/drivers/usb/usbdevice/class/mstorage.c +++ b/components/drivers/usb/usbdevice/class/mstorage.c @@ -1,21 +1,7 @@ /* - * File : mstorage.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbdevice/class/mstorage.h b/components/drivers/usb/usbdevice/class/mstorage.h index 25068270bd..254038195b 100644 --- a/components/drivers/usb/usbdevice/class/mstorage.h +++ b/components/drivers/usb/usbdevice/class/mstorage.h @@ -1,21 +1,7 @@ /* - * File : mstorage.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbdevice/class/ndis.h b/components/drivers/usb/usbdevice/class/ndis.h index 8ad16637c2..6d6943366e 100644 --- a/components/drivers/usb/usbdevice/class/ndis.h +++ b/components/drivers/usb/usbdevice/class/ndis.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* * ndis.h * diff --git a/components/drivers/usb/usbdevice/class/rndis.c b/components/drivers/usb/usbdevice/class/rndis.c index 40efc85988..e07c6349d0 100644 --- a/components/drivers/usb/usbdevice/class/rndis.c +++ b/components/drivers/usb/usbdevice/class/rndis.c @@ -1,11 +1,7 @@ /* - * File : rndis.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbdevice/class/rndis.h b/components/drivers/usb/usbdevice/class/rndis.h index 1374338c14..000ea62baf 100644 --- a/components/drivers/usb/usbdevice/class/rndis.h +++ b/components/drivers/usb/usbdevice/class/rndis.h @@ -1,11 +1,7 @@ /* - * File : rndis.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbdevice/class/winusb.c b/components/drivers/usb/usbdevice/class/winusb.c index ee88a82ec4..ff2a81a4da 100644 --- a/components/drivers/usb/usbdevice/class/winusb.c +++ b/components/drivers/usb/usbdevice/class/winusb.c @@ -1,6 +1,7 @@ /* - * File : winusb.c - * COPYRIGHT (C) 2008 - 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbdevice/class/winusb.h b/components/drivers/usb/usbdevice/class/winusb.h index 86aa7f413c..b5f87b4e56 100644 --- a/components/drivers/usb/usbdevice/class/winusb.h +++ b/components/drivers/usb/usbdevice/class/winusb.h @@ -1,6 +1,7 @@ /* - * File : winusb.h - * COPYRIGHT (C) 2008 - 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbdevice/core/core.c b/components/drivers/usb/usbdevice/core/core.c index 1900673976..fb850d6d2b 100644 --- a/components/drivers/usb/usbdevice/core/core.c +++ b/components/drivers/usb/usbdevice/core/core.c @@ -1,21 +1,7 @@ /* - * File : core.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/class/adk.c b/components/drivers/usb/usbhost/class/adk.c index e7eed45127..62f6758962 100644 --- a/components/drivers/usb/usbhost/class/adk.c +++ b/components/drivers/usb/usbhost/class/adk.c @@ -1,21 +1,7 @@ /* - * File : adk.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/class/adk.h b/components/drivers/usb/usbhost/class/adk.h index f08bea5f59..041d47c674 100644 --- a/components/drivers/usb/usbhost/class/adk.h +++ b/components/drivers/usb/usbhost/class/adk.h @@ -1,21 +1,7 @@ /* - * File : adk.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/class/hid.c b/components/drivers/usb/usbhost/class/hid.c index 2c226ca963..d297a5cb51 100644 --- a/components/drivers/usb/usbhost/class/hid.c +++ b/components/drivers/usb/usbhost/class/hid.c @@ -1,11 +1,7 @@ /* - * File : hid.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/class/hid.h b/components/drivers/usb/usbhost/class/hid.h index 22dcbabde8..8e446c8cea 100644 --- a/components/drivers/usb/usbhost/class/hid.h +++ b/components/drivers/usb/usbhost/class/hid.h @@ -1,11 +1,7 @@ /* - * File : hid.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/class/mass.c b/components/drivers/usb/usbhost/class/mass.c index ff52f8d6f5..a933af471a 100644 --- a/components/drivers/usb/usbhost/class/mass.c +++ b/components/drivers/usb/usbhost/class/mass.c @@ -1,11 +1,7 @@ /* - * File : mass.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/class/mass.h b/components/drivers/usb/usbhost/class/mass.h index 38cdb32399..770e64a03f 100644 --- a/components/drivers/usb/usbhost/class/mass.h +++ b/components/drivers/usb/usbhost/class/mass.h @@ -1,11 +1,7 @@ /* - * File : mass.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/class/udisk.c b/components/drivers/usb/usbhost/class/udisk.c index cdd2551c96..d9c522e76b 100644 --- a/components/drivers/usb/usbhost/class/udisk.c +++ b/components/drivers/usb/usbhost/class/udisk.c @@ -1,11 +1,7 @@ /* - * File : udisk.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/class/ukbd.c b/components/drivers/usb/usbhost/class/ukbd.c index 9f7d4bda3a..7d608de259 100644 --- a/components/drivers/usb/usbhost/class/ukbd.c +++ b/components/drivers/usb/usbhost/class/ukbd.c @@ -1,11 +1,7 @@ /* - * File : ukbd.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/class/umouse.c b/components/drivers/usb/usbhost/class/umouse.c index 0fb529f598..e769475a98 100644 --- a/components/drivers/usb/usbhost/class/umouse.c +++ b/components/drivers/usb/usbhost/class/umouse.c @@ -1,11 +1,7 @@ /* - * File : umouse.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/core/core.c b/components/drivers/usb/usbhost/core/core.c index 854c3815af..b5da9da72a 100644 --- a/components/drivers/usb/usbhost/core/core.c +++ b/components/drivers/usb/usbhost/core/core.c @@ -1,21 +1,7 @@ /* - * File : core.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/core/driver.c b/components/drivers/usb/usbhost/core/driver.c index 19c8805732..37327108c1 100644 --- a/components/drivers/usb/usbhost/core/driver.c +++ b/components/drivers/usb/usbhost/core/driver.c @@ -1,21 +1,7 @@ /* - * File : driver.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/core/hub.c b/components/drivers/usb/usbhost/core/hub.c index b022183d1a..11aa1ebf1b 100644 --- a/components/drivers/usb/usbhost/core/hub.c +++ b/components/drivers/usb/usbhost/core/hub.c @@ -1,21 +1,7 @@ /* - * File : hub.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/usb/usbhost/core/usbhost.c b/components/drivers/usb/usbhost/core/usbhost.c index 15ac0b76cb..f0294238c4 100644 --- a/components/drivers/usb/usbhost/core/usbhost.c +++ b/components/drivers/usb/usbhost/core/usbhost.c @@ -1,21 +1,7 @@ /* - * File : usbhost.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/drivers/watchdog/watchdog.c b/components/drivers/watchdog/watchdog.c index e5453f8e43..196f02039d 100644 --- a/components/drivers/watchdog/watchdog.c +++ b/components/drivers/watchdog/watchdog.c @@ -1,21 +1,7 @@ /* - * File : watchdog.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012-2014, Shanghai Real-Thread Electronic Technology Co.,Ltd - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes From 20bc91d25fd97b3136d26aa6339c6648db0e9e1c Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Sun, 14 Oct 2018 19:38:52 +0800 Subject: [PATCH 06/31] [license] Change license to Apache. --- include/rtdbg.h | 4 ---- include/rtdebug.h | 4 ---- include/rtdef.h | 4 ---- include/rthw.h | 4 ---- include/rtlibc.h | 4 ---- include/rtm.h | 4 ---- include/rtservice.h | 4 ---- include/rtthread.h | 4 ---- 8 files changed, 32 deletions(-) diff --git a/include/rtdbg.h b/include/rtdbg.h index da4eb48303..d19a191227 100644 --- a/include/rtdbg.h +++ b/include/rtdbg.h @@ -2,10 +2,6 @@ * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 - */ - -/* - * File : rtdbg.h * * Change Logs: * Date Author Notes diff --git a/include/rtdebug.h b/include/rtdebug.h index 48f8d2392a..b66cd6fc69 100644 --- a/include/rtdebug.h +++ b/include/rtdebug.h @@ -4,10 +4,6 @@ * SPDX-License-Identifier: Apache-2.0 */ -/* - * File : rtdebug.h - */ - #ifndef __RTDEBUG_H__ #define __RTDEBUG_H__ diff --git a/include/rtdef.h b/include/rtdef.h index 92b997151d..deb3295e27 100644 --- a/include/rtdef.h +++ b/include/rtdef.h @@ -2,10 +2,6 @@ * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 - */ - -/* - * File : rtdef.h * * Change Logs: * Date Author Notes diff --git a/include/rthw.h b/include/rthw.h index 8473854538..c6af392e62 100644 --- a/include/rthw.h +++ b/include/rthw.h @@ -2,10 +2,6 @@ * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 - */ - -/* - * File : rthw.h * * Change Logs: * Date Author Notes diff --git a/include/rtlibc.h b/include/rtlibc.h index 020c34764e..b3a548beb1 100644 --- a/include/rtlibc.h +++ b/include/rtlibc.h @@ -2,10 +2,6 @@ * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 - */ - -/* - * File : rtlibc.h * * Change Logs: * Date Author Notes diff --git a/include/rtm.h b/include/rtm.h index 08ad721baf..7e07a2239c 100644 --- a/include/rtm.h +++ b/include/rtm.h @@ -4,10 +4,6 @@ * SPDX-License-Identifier: Apache-2.0 */ -/* - * File : rtm.h - */ - #ifndef __RTM_H__ #define __RTM_H__ diff --git a/include/rtservice.h b/include/rtservice.h index 145a225ace..3b6fc94c92 100644 --- a/include/rtservice.h +++ b/include/rtservice.h @@ -2,10 +2,6 @@ * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 - */ - -/* - * File : rtservice.h * * Change Logs: * Date Author Notes diff --git a/include/rtthread.h b/include/rtthread.h index f8da2d46bf..fc5029a220 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -2,10 +2,6 @@ * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 - */ - -/* - * File : rtthread.h * * Change Logs: * Date Author Notes From e158d48de0af360b4be2928823b8d208e4bc5693 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Mon, 15 Oct 2018 00:50:04 +0800 Subject: [PATCH 07/31] [license] Fix the bad license replace. --- components/drivers/include/ipc/ringbuffer.h | 87 ++------------------- 1 file changed, 8 insertions(+), 79 deletions(-) diff --git a/components/drivers/include/ipc/ringbuffer.h b/components/drivers/include/ipc/ringbuffer.h index 70d49cfe88..4487d02c47 100644 --- a/components/drivers/include/ipc/ringbuffer.h +++ b/components/drivers/include/ipc/ringbuffer.h @@ -1,160 +1,89 @@ -#ifndef RINGBUFFER_H__ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef RINGBUFFER_H__ #define RINGBUFFER_H__ -#define RINGBUFFER_H__ - #ifdef __cplusplus -#ifdef __cplusplus -extern "C" { extern "C" { #endif -#endif - #include -#include - /* ring buffer */ -/* ring buffer */ -struct rt_ringbuffer struct rt_ringbuffer { -{ - rt_uint8_t *buffer_ptr; rt_uint8_t *buffer_ptr; /* use the msb of the {read,write}_index as mirror bit. You can see this as - /* use the msb of the {read,write}_index as mirror bit. You can see this as - * if the buffer adds a virtual mirror and the pointers point either to the * if the buffer adds a virtual mirror and the pointers point either to the * normal or to the mirrored buffer. If the write_index has the same value - * normal or to the mirrored buffer. If the write_index has the same value - * with the read_index, but in a different mirror, the buffer is full. * with the read_index, but in a different mirror, the buffer is full. * While if the write_index and the read_index are the same and within the - * While if the write_index and the read_index are the same and within the - * same mirror, the buffer is empty. The ASCII art of the ringbuffer is: * same mirror, the buffer is empty. The ASCII art of the ringbuffer is: * - * - * mirror = 0 mirror = 1 * mirror = 0 mirror = 1 * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ - * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 ||| 0 | 1 | 2 | 3 | 4 | 5 | 6 | Full * | 0 | 1 | 2 | 3 | 4 | 5 | 6 ||| 0 | 1 | 2 | 3 | 4 | 5 | 6 | Full * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ - * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ - * read_idx-^ write_idx-^ * read_idx-^ write_idx-^ * - * - * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 ||| 0 | 1 | 2 | 3 | 4 | 5 | 6 | Empty - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 ||| 0 | 1 | 2 | 3 | 4 | 5 | 6 | Empty - * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ * +---+---+---+---+---+---+---+|+~~~+~~~+~~~+~~~+~~~+~~~+~~~+ * read_idx-^ ^-write_idx - * read_idx-^ ^-write_idx - * * * The tradeoff is we could only use 32KiB of buffer for 16 bit of index. - * The tradeoff is we could only use 32KiB of buffer for 16 bit of index. - * But it should be enough for most of the cases. * But it should be enough for most of the cases. * - * - * Ref: http://en.wikipedia.org/wiki/Circular_buffer#Mirroring */ * Ref: http://en.wikipedia.org/wiki/Circular_buffer#Mirroring */ rt_uint16_t read_mirror : 1; - rt_uint16_t read_mirror : 1; - rt_uint16_t read_index : 15; rt_uint16_t read_index : 15; rt_uint16_t write_mirror : 1; - rt_uint16_t write_mirror : 1; - rt_uint16_t write_index : 15; rt_uint16_t write_index : 15; /* as we use msb of index as mirror bit, the size should be signed and - /* as we use msb of index as mirror bit, the size should be signed and - * could only be positive. */ * could only be positive. */ rt_int16_t buffer_size; - rt_int16_t buffer_size; }; -}; - enum rt_ringbuffer_state -enum rt_ringbuffer_state -{ { RT_RINGBUFFER_EMPTY, - RT_RINGBUFFER_EMPTY, - RT_RINGBUFFER_FULL, RT_RINGBUFFER_FULL, /* half full is neither full nor empty */ - /* half full is neither full nor empty */ - RT_RINGBUFFER_HALFFULL, RT_RINGBUFFER_HALFFULL, }; -}; - /** -/** - * RingBuffer for DeviceDriver * RingBuffer for DeviceDriver * - * - * Please note that the ring buffer implementation of RT-Thread * Please note that the ring buffer implementation of RT-Thread * has no thread wait or resume feature. - * has no thread wait or resume feature. - */ */ void rt_ringbuffer_init(struct rt_ringbuffer *rb, rt_uint8_t *pool, rt_int16_t size); -void rt_ringbuffer_init(struct rt_ringbuffer *rb, rt_uint8_t *pool, rt_int16_t size); -void rt_ringbuffer_reset(struct rt_ringbuffer *rb); void rt_ringbuffer_reset(struct rt_ringbuffer *rb); rt_size_t rt_ringbuffer_put(struct rt_ringbuffer *rb, const rt_uint8_t *ptr, rt_uint16_t length); -rt_size_t rt_ringbuffer_put(struct rt_ringbuffer *rb, const rt_uint8_t *ptr, rt_uint16_t length); -rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb, const rt_uint8_t *ptr, rt_uint16_t length); rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb, const rt_uint8_t *ptr, rt_uint16_t length); rt_size_t rt_ringbuffer_putchar(struct rt_ringbuffer *rb, const rt_uint8_t ch); -rt_size_t rt_ringbuffer_putchar(struct rt_ringbuffer *rb, const rt_uint8_t ch); -rt_size_t rt_ringbuffer_putchar_force(struct rt_ringbuffer *rb, const rt_uint8_t ch); rt_size_t rt_ringbuffer_putchar_force(struct rt_ringbuffer *rb, const rt_uint8_t ch); rt_size_t rt_ringbuffer_get(struct rt_ringbuffer *rb, rt_uint8_t *ptr, rt_uint16_t length); -rt_size_t rt_ringbuffer_get(struct rt_ringbuffer *rb, rt_uint8_t *ptr, rt_uint16_t length); -rt_size_t rt_ringbuffer_getchar(struct rt_ringbuffer *rb, rt_uint8_t *ch); rt_size_t rt_ringbuffer_getchar(struct rt_ringbuffer *rb, rt_uint8_t *ch); rt_size_t rt_ringbuffer_data_len(struct rt_ringbuffer *rb); -rt_size_t rt_ringbuffer_data_len(struct rt_ringbuffer *rb); - #ifdef RT_USING_HEAP -#ifdef RT_USING_HEAP -struct rt_ringbuffer* rt_ringbuffer_create(rt_uint16_t length); struct rt_ringbuffer* rt_ringbuffer_create(rt_uint16_t length); void rt_ringbuffer_destroy(struct rt_ringbuffer *rb); -void rt_ringbuffer_destroy(struct rt_ringbuffer *rb); -#endif #endif - -rt_inline rt_uint16_t rt_ringbuffer_get_size(struct rt_ringbuffer *rb) rt_inline rt_uint16_t rt_ringbuffer_get_size(struct rt_ringbuffer *rb) { -{ - RT_ASSERT(rb != RT_NULL); RT_ASSERT(rb != RT_NULL); return rb->buffer_size; - return rb->buffer_size; } -} - /** return the size of empty space in rb */ #define rt_ringbuffer_space_len(rb) ((rb)->buffer_size - rt_ringbuffer_data_len(rb)) From 4bbfaf9333a34ae772b99a1efd840db2648d5014 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Mon, 15 Oct 2018 01:20:56 +0800 Subject: [PATCH 08/31] [license] Change the license of VBUS to Apache. --- components/vbus/prio_queue.c | 25 +++--------------------- components/vbus/prio_queue.h | 25 +++--------------------- components/vbus/share_hdr/vbus_api.h | 8 ++++++++ components/vbus/vbus.c | 25 +++--------------------- components/vbus/vbus.h | 29 +++++----------------------- components/vbus/vbus_chnx.c | 25 +++--------------------- components/vbus/watermark_queue.c | 25 +++--------------------- components/vbus/watermark_queue.h | 25 +++--------------------- 8 files changed, 31 insertions(+), 156 deletions(-) diff --git a/components/vbus/prio_queue.c b/components/vbus/prio_queue.c index b402e0376a..bca3cdcd9a 100644 --- a/components/vbus/prio_queue.c +++ b/components/vbus/prio_queue.c @@ -1,26 +1,7 @@ /* - * Priority Queue - * - * COPYRIGHT (C) 2013-2015, Shanghai Real-Thread Technology Co., Ltd - * http://www.rt-thread.com - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/vbus/prio_queue.h b/components/vbus/prio_queue.h index 8a29cbb715..7358ffdb23 100644 --- a/components/vbus/prio_queue.h +++ b/components/vbus/prio_queue.h @@ -1,26 +1,7 @@ /* - * Priority Queue - * - * COPYRIGHT (C) 2013-2015, Shanghai Real-Thread Technology Co., Ltd - * http://www.rt-thread.com - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/vbus/share_hdr/vbus_api.h b/components/vbus/share_hdr/vbus_api.h index 4425bb448a..db6cb7b72c 100644 --- a/components/vbus/share_hdr/vbus_api.h +++ b/components/vbus/share_hdr/vbus_api.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __VBUS_API_H__ #define __VBUS_API_H__ diff --git a/components/vbus/vbus.c b/components/vbus/vbus.c index 4ff4f05f37..b6d59af6cf 100644 --- a/components/vbus/vbus.c +++ b/components/vbus/vbus.c @@ -1,26 +1,7 @@ /* - * VMM Bus - * - * COPYRIGHT (C) 2013-2015, Shanghai Real-Thread Technology Co., Ltd - * http://www.rt-thread.com - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/vbus/vbus.h b/components/vbus/vbus.h index a5fd33130b..ea271d8e79 100644 --- a/components/vbus/vbus.h +++ b/components/vbus/vbus.h @@ -1,34 +1,15 @@ -#ifndef __VBUS_H__ -#define __VBUS_H__ /* - * VBus - * - * COPYRIGHT (C) 2013-2015, Shanghai Real-Thread Technology Co., Ltd - * http://www.rt-thread.com - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2014-06-09 Grissiom version 2.0.2; add comment * 2015-01-06 Grissiom version 2.0.3; API change, no functional changes */ +#ifndef __VBUS_H__ +#define __VBUS_H__ #include diff --git a/components/vbus/vbus_chnx.c b/components/vbus/vbus_chnx.c index 246c61782f..d064d6f1f2 100644 --- a/components/vbus/vbus_chnx.c +++ b/components/vbus/vbus_chnx.c @@ -1,26 +1,7 @@ /* - * Channel on VMM Bus - * - * COPYRIGHT (C) 2013-2015, Shanghai Real-Thread Technology Co., Ltd - * http://www.rt-thread.com - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/vbus/watermark_queue.c b/components/vbus/watermark_queue.c index 9a55d402d9..e56790d286 100644 --- a/components/vbus/watermark_queue.c +++ b/components/vbus/watermark_queue.c @@ -1,26 +1,7 @@ /* - * Water Gauge - * - * COPYRIGHT (C) 2014-2015, Shanghai Real-Thread Technology Co., Ltd - * http://www.rt-thread.com - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/vbus/watermark_queue.h b/components/vbus/watermark_queue.h index 1fd51e07c2..0ecc52d8ff 100644 --- a/components/vbus/watermark_queue.h +++ b/components/vbus/watermark_queue.h @@ -1,26 +1,7 @@ /* - * Thread queue with water mark - * - * COPYRIGHT (C) 2014-2015, Shanghai Real-Thread Technology Co., Ltd - * http://www.rt-thread.com - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes From e320de70b6669fc5d67973073543a29323ed0c9f Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Mon, 15 Oct 2018 01:23:33 +0800 Subject: [PATCH 09/31] [license] Change the license of SAL to Apache. --- components/net/sal_socket/dfs_net/dfs_net.c | 18 ++---------------- components/net/sal_socket/impl/af_inet.h | 18 ++---------------- components/net/sal_socket/impl/af_inet_at.c | 18 ++---------------- components/net/sal_socket/impl/af_inet_lwip.c | 18 ++---------------- .../net/sal_socket/include/dfs_net/dfs_net.h | 18 ++---------------- .../include/dfs_net/sys_select/sys/select.h | 18 ++---------------- components/net/sal_socket/include/sal.h | 18 ++---------------- components/net/sal_socket/include/sal_ipaddr.h | 18 ++---------------- components/net/sal_socket/include/sal_netdb.h | 18 ++---------------- components/net/sal_socket/include/sal_socket.h | 18 ++---------------- components/net/sal_socket/include/sal_type.h | 18 ++---------------- .../net/sal_socket/include/socket/arpa/inet.h | 18 ++---------------- .../net/sal_socket/include/socket/netdb.h | 18 ++---------------- .../net/sal_socket/include/socket/netinet/in.h | 18 ++---------------- .../sal_socket/include/socket/netinet/tcp.h | 18 ++---------------- .../sal_socket/include/socket/netinet/udp.h | 18 ++---------------- .../include/socket/sys_socket/sys/socket.h | 18 ++---------------- components/net/sal_socket/socket/net_netdb.c | 18 ++---------------- components/net/sal_socket/socket/net_sockets.c | 18 ++---------------- components/net/sal_socket/src/sal_ipaddr.c | 18 ++---------------- components/net/sal_socket/src/sal_socket.c | 18 ++---------------- 21 files changed, 42 insertions(+), 336 deletions(-) diff --git a/components/net/sal_socket/dfs_net/dfs_net.c b/components/net/sal_socket/dfs_net/dfs_net.c index ee9b685f8c..37db186eff 100644 --- a/components/net/sal_socket/dfs_net/dfs_net.c +++ b/components/net/sal_socket/dfs_net/dfs_net.c @@ -1,21 +1,7 @@ /* - * File : dfs_net.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/impl/af_inet.h b/components/net/sal_socket/impl/af_inet.h index 8d6be25eaa..8b7bf9d2a6 100644 --- a/components/net/sal_socket/impl/af_inet.h +++ b/components/net/sal_socket/impl/af_inet.h @@ -1,21 +1,7 @@ /* - * File : af_inet.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/impl/af_inet_at.c b/components/net/sal_socket/impl/af_inet_at.c index f921e721eb..fe7ad6cd13 100644 --- a/components/net/sal_socket/impl/af_inet_at.c +++ b/components/net/sal_socket/impl/af_inet_at.c @@ -1,21 +1,7 @@ /* - * File : af_inet_at.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/impl/af_inet_lwip.c b/components/net/sal_socket/impl/af_inet_lwip.c index 563f8947d0..e20e16ffaf 100644 --- a/components/net/sal_socket/impl/af_inet_lwip.c +++ b/components/net/sal_socket/impl/af_inet_lwip.c @@ -1,21 +1,7 @@ /* - * File : af_inet_lwip.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/dfs_net/dfs_net.h b/components/net/sal_socket/include/dfs_net/dfs_net.h index 242d3c5334..ad28b8ec2a 100644 --- a/components/net/sal_socket/include/dfs_net/dfs_net.h +++ b/components/net/sal_socket/include/dfs_net/dfs_net.h @@ -1,21 +1,7 @@ /* - * File : dfs_net.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015-2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/dfs_net/sys_select/sys/select.h b/components/net/sal_socket/include/dfs_net/sys_select/sys/select.h index c2e2d54d3a..8899daee96 100644 --- a/components/net/sal_socket/include/dfs_net/sys_select/sys/select.h +++ b/components/net/sal_socket/include/dfs_net/sys_select/sys/select.h @@ -1,21 +1,7 @@ /* - * File : select.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/sal.h b/components/net/sal_socket/include/sal.h index 480167c91d..68248742d6 100644 --- a/components/net/sal_socket/include/sal.h +++ b/components/net/sal_socket/include/sal.h @@ -1,21 +1,7 @@ /* - * File : sal.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/sal_ipaddr.h b/components/net/sal_socket/include/sal_ipaddr.h index c40fc18374..c0562436f0 100644 --- a/components/net/sal_socket/include/sal_ipaddr.h +++ b/components/net/sal_socket/include/sal_ipaddr.h @@ -1,21 +1,7 @@ /* - * File : sal_ipaddr.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/sal_netdb.h b/components/net/sal_socket/include/sal_netdb.h index 0a31f26fae..3f70832083 100644 --- a/components/net/sal_socket/include/sal_netdb.h +++ b/components/net/sal_socket/include/sal_netdb.h @@ -1,21 +1,7 @@ /* - * File : sal_netdb.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/sal_socket.h b/components/net/sal_socket/include/sal_socket.h index b5fa5170b9..0a8597df6e 100644 --- a/components/net/sal_socket/include/sal_socket.h +++ b/components/net/sal_socket/include/sal_socket.h @@ -1,21 +1,7 @@ /* - * File : sal_socket.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/sal_type.h b/components/net/sal_socket/include/sal_type.h index 907b3d02b4..6e107ae126 100644 --- a/components/net/sal_socket/include/sal_type.h +++ b/components/net/sal_socket/include/sal_type.h @@ -1,21 +1,7 @@ /* - * File : sal_type.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/socket/arpa/inet.h b/components/net/sal_socket/include/socket/arpa/inet.h index e7d856d434..f477df5c23 100644 --- a/components/net/sal_socket/include/socket/arpa/inet.h +++ b/components/net/sal_socket/include/socket/arpa/inet.h @@ -1,21 +1,7 @@ /* - * File : inet.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/socket/netdb.h b/components/net/sal_socket/include/socket/netdb.h index c1ffbb826c..17f83efe00 100644 --- a/components/net/sal_socket/include/socket/netdb.h +++ b/components/net/sal_socket/include/socket/netdb.h @@ -1,21 +1,7 @@ /* - * File : netdb.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/socket/netinet/in.h b/components/net/sal_socket/include/socket/netinet/in.h index d01a9b3f89..57c417d7b6 100644 --- a/components/net/sal_socket/include/socket/netinet/in.h +++ b/components/net/sal_socket/include/socket/netinet/in.h @@ -1,21 +1,7 @@ /* - * File : in.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/socket/netinet/tcp.h b/components/net/sal_socket/include/socket/netinet/tcp.h index aafb0f15d0..2ac4d6f40d 100644 --- a/components/net/sal_socket/include/socket/netinet/tcp.h +++ b/components/net/sal_socket/include/socket/netinet/tcp.h @@ -1,21 +1,7 @@ /* - * File : tcp.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/socket/netinet/udp.h b/components/net/sal_socket/include/socket/netinet/udp.h index 4b84755e68..485d7d142c 100644 --- a/components/net/sal_socket/include/socket/netinet/udp.h +++ b/components/net/sal_socket/include/socket/netinet/udp.h @@ -1,21 +1,7 @@ /* - * File : udp.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/include/socket/sys_socket/sys/socket.h b/components/net/sal_socket/include/socket/sys_socket/sys/socket.h index ec7f7b87ea..dd2c3850a6 100644 --- a/components/net/sal_socket/include/socket/sys_socket/sys/socket.h +++ b/components/net/sal_socket/include/socket/sys_socket/sys/socket.h @@ -1,21 +1,7 @@ /* - * File : socket.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/socket/net_netdb.c b/components/net/sal_socket/socket/net_netdb.c index 1f10afe337..bc76a48965 100644 --- a/components/net/sal_socket/socket/net_netdb.c +++ b/components/net/sal_socket/socket/net_netdb.c @@ -1,21 +1,7 @@ /* - * File : net_netdb.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/socket/net_sockets.c b/components/net/sal_socket/socket/net_sockets.c index b9e9fd3b57..232b87ba1e 100644 --- a/components/net/sal_socket/socket/net_sockets.c +++ b/components/net/sal_socket/socket/net_sockets.c @@ -1,21 +1,7 @@ /* - * File : net_sockets.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/src/sal_ipaddr.c b/components/net/sal_socket/src/sal_ipaddr.c index 0060ccec45..6477a8ad64 100644 --- a/components/net/sal_socket/src/sal_ipaddr.c +++ b/components/net/sal_socket/src/sal_ipaddr.c @@ -1,21 +1,7 @@ /* - * File : sal_ipaddr.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/net/sal_socket/src/sal_socket.c b/components/net/sal_socket/src/sal_socket.c index 351506756f..ac36cb2139 100644 --- a/components/net/sal_socket/src/sal_socket.c +++ b/components/net/sal_socket/src/sal_socket.c @@ -1,21 +1,7 @@ /* - * File : sal_socket.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes From 7c425408b4335d7af2fefcfa51174735b98037ed Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Mon, 15 Oct 2018 01:35:07 +0800 Subject: [PATCH 10/31] [license] Change the license of libarm to Apache. --- libcpu/arm/AT91SAM7S/AT91SAM7S.h | 8 +- libcpu/arm/AT91SAM7S/context_gcc.S | 8 +- libcpu/arm/AT91SAM7S/cpu.c | 8 +- libcpu/arm/AT91SAM7S/interrupt.c | 8 +- libcpu/arm/AT91SAM7S/serial.c | 8 +- libcpu/arm/AT91SAM7S/serial.h | 8 + libcpu/arm/AT91SAM7S/stack.c | 8 +- libcpu/arm/AT91SAM7S/start_gcc.S | 8 +- libcpu/arm/AT91SAM7S/trap.c | 8 +- libcpu/arm/AT91SAM7X/context_gcc.S | 8 +- libcpu/arm/AT91SAM7X/cpu.c | 8 +- libcpu/arm/AT91SAM7X/interrupt.c | 8 +- libcpu/arm/AT91SAM7X/stack.c | 8 +- libcpu/arm/AT91SAM7X/start_gcc.S | 8 +- libcpu/arm/AT91SAM7X/trap.c | 8 +- libcpu/arm/am335x/am33xx.h | 8 + libcpu/arm/am335x/context_gcc.S | 18 +- libcpu/arm/am335x/cp15_gcc.S | 19 +- libcpu/arm/am335x/cp15_iar.s | 19 +- libcpu/arm/am335x/cpu.c | 8 +- libcpu/arm/am335x/interrupt.c | 8 +- libcpu/arm/am335x/interrupt.h | 8 +- libcpu/arm/am335x/mmu.c | 8 +- libcpu/arm/am335x/mmu.h | 21 +- libcpu/arm/am335x/stack.c | 8 +- libcpu/arm/am335x/start_gcc.S | 18 +- libcpu/arm/am335x/start_iar.s | 18 +- libcpu/arm/am335x/trap.c | 8 +- libcpu/arm/am335x/vector_gcc.S | 18 +- libcpu/arm/arm926/cpuport.c | 18 +- libcpu/arm/arm926/mmu.c | 18 +- libcpu/arm/arm926/mmu.h | 18 +- libcpu/arm/arm926/stack.c | 18 +- libcpu/arm/arm926/start_gcc.S | 20 +- libcpu/arm/arm926/trap.c | 18 +- libcpu/arm/armv6/arm_entry_gcc.S | 18 +- libcpu/arm/armv6/armv6.h | 18 +- libcpu/arm/armv6/context_gcc.S | 18 +- libcpu/arm/armv6/cpuport.c | 18 +- libcpu/arm/armv6/mmu.c | 18 +- libcpu/arm/armv6/mmu.h | 18 +- libcpu/arm/armv6/stack.c | 18 +- libcpu/arm/armv6/vfp.c | 18 +- libcpu/arm/armv6/vfp.h | 18 +- libcpu/arm/common/backtrace.c | 8 +- libcpu/arm/common/div0.c | 8 + libcpu/arm/common/divsi3.S | 8 + libcpu/arm/common/showmem.c | 8 +- libcpu/arm/cortex-a/armv7.h | 8 + libcpu/arm/cortex-a/context_gcc.S | 18 +- libcpu/arm/cortex-a/cp15.h | 8 + libcpu/arm/cortex-a/cp15_gcc.S | 19 +- libcpu/arm/cortex-a/cpu.c | 8 +- libcpu/arm/cortex-a/interrupt.c | 8 +- libcpu/arm/cortex-a/mmu.c | 8 +- libcpu/arm/cortex-a/pmu.c | 8 + libcpu/arm/cortex-a/pmu.h | 8 + libcpu/arm/cortex-a/stack.c | 8 +- libcpu/arm/cortex-a/start_gcc.S | 18 +- libcpu/arm/cortex-a/trap.c | 8 +- libcpu/arm/cortex-a/vector_gcc.S | 18 +- libcpu/arm/cortex-m0/context_gcc.S | 8 +- libcpu/arm/cortex-m0/cpuport.c | 8 +- libcpu/arm/cortex-m3/context_gcc.S | 8 +- libcpu/arm/cortex-m3/cpuport.c | 8 +- libcpu/arm/cortex-m4/context_gcc.S | 8 +- libcpu/arm/cortex-m7/context_gcc.S | 8 +- libcpu/arm/cortex-r4/armv7.h | 8 + libcpu/arm/cortex-r4/context_gcc.S | 8 +- libcpu/arm/cortex-r4/cpu.c | 8 +- libcpu/arm/cortex-r4/interrupt.c | 8 +- libcpu/arm/cortex-r4/stack.c | 8 +- libcpu/arm/cortex-r4/start_gcc.S | 8 + libcpu/arm/cortex-r4/trap.c | 8 +- libcpu/arm/cortex-r4/vector_gcc.S | 8 + libcpu/arm/dm36x/context_gcc.S | 18 +- libcpu/arm/dm36x/cpuport.c | 18 +- libcpu/arm/dm36x/mmu.c | 18 +- libcpu/arm/dm36x/mmu.h | 18 +- libcpu/arm/dm36x/stack.c | 18 +- libcpu/arm/lpc214x/context_gcc.S | 68 +- libcpu/arm/lpc214x/cpuport.c | 8 +- libcpu/arm/lpc214x/startup_gcc.S | 102 ++- libcpu/arm/lpc24xx/LPC24xx.h | 8 +- libcpu/arm/lpc24xx/context_gcc.S | 8 +- libcpu/arm/lpc24xx/cpu.c | 8 +- libcpu/arm/lpc24xx/interrupt.c | 8 +- libcpu/arm/lpc24xx/stack.c | 8 +- libcpu/arm/lpc24xx/start_gcc.S | 8 +- libcpu/arm/lpc24xx/start_rvds.S | 8 + libcpu/arm/lpc24xx/trap.c | 8 +- libcpu/arm/realview-a8-vmm/armv7.h | 8 + libcpu/arm/realview-a8-vmm/context_gcc.S | 18 +- libcpu/arm/realview-a8-vmm/cp15.h | 8 + libcpu/arm/realview-a8-vmm/cp15_gcc.S | 19 +- libcpu/arm/realview-a8-vmm/cpu.c | 8 +- libcpu/arm/realview-a8-vmm/gic.c | 8 +- libcpu/arm/realview-a8-vmm/gic.h | 8 +- libcpu/arm/realview-a8-vmm/interrupt.c | 8 +- libcpu/arm/realview-a8-vmm/interrupt.h | 8 +- libcpu/arm/realview-a8-vmm/mmu.c | 8 +- libcpu/arm/realview-a8-vmm/pmu.c | 8 + libcpu/arm/realview-a8-vmm/pmu.h | 8 + libcpu/arm/realview-a8-vmm/stack.c | 8 +- libcpu/arm/realview-a8-vmm/start_gcc.S | 18 +- libcpu/arm/realview-a8-vmm/trap.c | 8 +- libcpu/arm/realview-a8-vmm/vector_gcc.S | 18 +- libcpu/arm/s3c24x0/context_gcc.S | 8 +- libcpu/arm/s3c24x0/cpu.c | 8 +- libcpu/arm/s3c24x0/interrupt.c | 8 +- libcpu/arm/s3c24x0/mmu.c | 8 +- libcpu/arm/s3c24x0/rtc.c | 8 +- libcpu/arm/s3c24x0/rtc.h | 8 +- libcpu/arm/s3c24x0/s3c24x0.h | 8 +- libcpu/arm/s3c24x0/serial.c | 8 +- libcpu/arm/s3c24x0/serial.h | 8 + libcpu/arm/s3c24x0/stack.c | 8 +- libcpu/arm/s3c24x0/start_gcc.S | 8 +- libcpu/arm/s3c24x0/system_clock.c | 8 +- libcpu/arm/s3c24x0/trap.c | 8 +- libcpu/arm/s3c44b0/context_gcc.S | 8 +- libcpu/arm/s3c44b0/cpu.c | 8 +- libcpu/arm/s3c44b0/interrupt.c | 8 +- libcpu/arm/s3c44b0/s3c44b0.h | 8 +- libcpu/arm/s3c44b0/serial.c | 8 +- libcpu/arm/s3c44b0/stack.c | 8 +- libcpu/arm/s3c44b0/start_gcc.S | 8 +- libcpu/arm/s3c44b0/trap.c | 8 +- libcpu/arm/sep4020/clk.c | 8 +- libcpu/arm/sep4020/cpu.c | 8 +- libcpu/arm/sep4020/interrupt.c | 8 +- libcpu/arm/sep4020/sep4020.h | 1024 +++++++++++----------- libcpu/arm/sep4020/serial.c | 8 +- libcpu/arm/sep4020/serial.h | 8 +- libcpu/arm/sep4020/stack.c | 8 +- libcpu/arm/sep4020/trap.c | 8 +- libcpu/arm/zynq7000/cp15_gcc.S | 19 +- libcpu/arm/zynq7000/cpu.c | 8 +- libcpu/arm/zynq7000/stack.c | 8 +- libcpu/arm/zynq7000/start_gcc.S | 18 +- libcpu/arm/zynq7000/vector_gcc.S | 18 +- 141 files changed, 991 insertions(+), 1697 deletions(-) diff --git a/libcpu/arm/AT91SAM7S/AT91SAM7S.h b/libcpu/arm/AT91SAM7S/AT91SAM7S.h index 0c8d652c19..130f9074d1 100644 --- a/libcpu/arm/AT91SAM7S/AT91SAM7S.h +++ b/libcpu/arm/AT91SAM7S/AT91SAM7S.h @@ -1,11 +1,7 @@ /* - * File : at91sam7s.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7S/context_gcc.S b/libcpu/arm/AT91SAM7S/context_gcc.S index e76093f8be..aa9bb160cd 100644 --- a/libcpu/arm/AT91SAM7S/context_gcc.S +++ b/libcpu/arm/AT91SAM7S/context_gcc.S @@ -1,11 +1,7 @@ /* - * File : context.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7S/cpu.c b/libcpu/arm/AT91SAM7S/cpu.c index 57db2b7d24..8d28063eb1 100644 --- a/libcpu/arm/AT91SAM7S/cpu.c +++ b/libcpu/arm/AT91SAM7S/cpu.c @@ -1,11 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7S/interrupt.c b/libcpu/arm/AT91SAM7S/interrupt.c index fd84a72ea3..db9d31fe28 100644 --- a/libcpu/arm/AT91SAM7S/interrupt.c +++ b/libcpu/arm/AT91SAM7S/interrupt.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7S/serial.c b/libcpu/arm/AT91SAM7S/serial.c index ede8683b31..adbe8609d6 100644 --- a/libcpu/arm/AT91SAM7S/serial.c +++ b/libcpu/arm/AT91SAM7S/serial.c @@ -1,11 +1,7 @@ /* - * File : serial.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7S/serial.h b/libcpu/arm/AT91SAM7S/serial.h index 401b0c3129..0937e92f6c 100644 --- a/libcpu/arm/AT91SAM7S/serial.h +++ b/libcpu/arm/AT91SAM7S/serial.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __RT_SERIAL_H__ #define __RT_SERIAL_H__ diff --git a/libcpu/arm/AT91SAM7S/stack.c b/libcpu/arm/AT91SAM7S/stack.c index 14acc54456..6f8bd13bf9 100644 --- a/libcpu/arm/AT91SAM7S/stack.c +++ b/libcpu/arm/AT91SAM7S/stack.c @@ -1,11 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7S/start_gcc.S b/libcpu/arm/AT91SAM7S/start_gcc.S index 17695e31f2..2334f08e4f 100644 --- a/libcpu/arm/AT91SAM7S/start_gcc.S +++ b/libcpu/arm/AT91SAM7S/start_gcc.S @@ -1,11 +1,7 @@ /* - * File : start_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7S/trap.c b/libcpu/arm/AT91SAM7S/trap.c index 18534cda8b..208e568950 100644 --- a/libcpu/arm/AT91SAM7S/trap.c +++ b/libcpu/arm/AT91SAM7S/trap.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7X/context_gcc.S b/libcpu/arm/AT91SAM7X/context_gcc.S index e8f080359e..20b6f5e8cc 100644 --- a/libcpu/arm/AT91SAM7X/context_gcc.S +++ b/libcpu/arm/AT91SAM7X/context_gcc.S @@ -1,11 +1,7 @@ /* - * File : context.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7X/cpu.c b/libcpu/arm/AT91SAM7X/cpu.c index 1905da812e..484c19d10a 100644 --- a/libcpu/arm/AT91SAM7X/cpu.c +++ b/libcpu/arm/AT91SAM7X/cpu.c @@ -1,11 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7X/interrupt.c b/libcpu/arm/AT91SAM7X/interrupt.c index 71884f9f3f..62d487403d 100644 --- a/libcpu/arm/AT91SAM7X/interrupt.c +++ b/libcpu/arm/AT91SAM7X/interrupt.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7X/stack.c b/libcpu/arm/AT91SAM7X/stack.c index d6711a5296..ef60b1a760 100644 --- a/libcpu/arm/AT91SAM7X/stack.c +++ b/libcpu/arm/AT91SAM7X/stack.c @@ -1,11 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7X/start_gcc.S b/libcpu/arm/AT91SAM7X/start_gcc.S index 119f3cdbf3..d1b2334ac0 100644 --- a/libcpu/arm/AT91SAM7X/start_gcc.S +++ b/libcpu/arm/AT91SAM7X/start_gcc.S @@ -1,11 +1,7 @@ /* - * File : start.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/AT91SAM7X/trap.c b/libcpu/arm/AT91SAM7X/trap.c index 74d1cba445..1c1c351ff8 100644 --- a/libcpu/arm/AT91SAM7X/trap.c +++ b/libcpu/arm/AT91SAM7X/trap.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/am335x/am33xx.h b/libcpu/arm/am335x/am33xx.h index 68ea4478d3..99a65ac915 100644 --- a/libcpu/arm/am335x/am33xx.h +++ b/libcpu/arm/am335x/am33xx.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __AM33XX_H__ #define __AM33XX_H__ diff --git a/libcpu/arm/am335x/context_gcc.S b/libcpu/arm/am335x/context_gcc.S index a49ce0862d..20ac26df5e 100644 --- a/libcpu/arm/am335x/context_gcc.S +++ b/libcpu/arm/am335x/context_gcc.S @@ -1,21 +1,7 @@ /* - * File : context.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/am335x/cp15_gcc.S b/libcpu/arm/am335x/cp15_gcc.S index 1f8e685e21..9860a229da 100644 --- a/libcpu/arm/am335x/cp15_gcc.S +++ b/libcpu/arm/am335x/cp15_gcc.S @@ -1,22 +1,7 @@ /* - * File : cp15_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team - * http://www.rt-thread.org + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/am335x/cp15_iar.s b/libcpu/arm/am335x/cp15_iar.s index ae59ed04dc..058dc6074e 100644 --- a/libcpu/arm/am335x/cp15_iar.s +++ b/libcpu/arm/am335x/cp15_iar.s @@ -1,22 +1,7 @@ /* - * File : cp15_iar.s - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team - * http://www.rt-thread.org + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/am335x/cpu.c b/libcpu/arm/am335x/cpu.c index d75600711f..cae865fe50 100644 --- a/libcpu/arm/am335x/cpu.c +++ b/libcpu/arm/am335x/cpu.c @@ -1,11 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/am335x/interrupt.c b/libcpu/arm/am335x/interrupt.c index a13d089a7f..c10d13b86c 100644 --- a/libcpu/arm/am335x/interrupt.c +++ b/libcpu/arm/am335x/interrupt.c @@ -1,11 +1,7 @@ /* - * File : interrupt.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/am335x/interrupt.h b/libcpu/arm/am335x/interrupt.h index d81f1c81ae..7461f94da0 100644 --- a/libcpu/arm/am335x/interrupt.h +++ b/libcpu/arm/am335x/interrupt.h @@ -1,11 +1,7 @@ /* - * File : interrupt.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/am335x/mmu.c b/libcpu/arm/am335x/mmu.c index 03fe2e6242..babe825298 100644 --- a/libcpu/arm/am335x/mmu.c +++ b/libcpu/arm/am335x/mmu.c @@ -1,11 +1,7 @@ /* - * File : mmu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/am335x/mmu.h b/libcpu/arm/am335x/mmu.h index 11ea5254d6..73635d3a0e 100644 --- a/libcpu/arm/am335x/mmu.h +++ b/libcpu/arm/am335x/mmu.h @@ -1,22 +1,11 @@ /* - * File : mmu.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * + * Change Logs: + * Date Author Notes + * 2012-01-10 bernard porting to AM1808 */ #ifndef __MMU_H__ diff --git a/libcpu/arm/am335x/stack.c b/libcpu/arm/am335x/stack.c index 7415e230f5..1dad930818 100644 --- a/libcpu/arm/am335x/stack.c +++ b/libcpu/arm/am335x/stack.c @@ -1,11 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/am335x/start_gcc.S b/libcpu/arm/am335x/start_gcc.S index f80aca6223..6b76fb04a4 100644 --- a/libcpu/arm/am335x/start_gcc.S +++ b/libcpu/arm/am335x/start_gcc.S @@ -1,21 +1,7 @@ /* - * File : start_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/am335x/start_iar.s b/libcpu/arm/am335x/start_iar.s index 61f977f2c6..e06d7b8861 100644 --- a/libcpu/arm/am335x/start_iar.s +++ b/libcpu/arm/am335x/start_iar.s @@ -1,21 +1,7 @@ /* - * File : start_iar.s - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/am335x/trap.c b/libcpu/arm/am335x/trap.c index 89dc14255a..b77543da64 100644 --- a/libcpu/arm/am335x/trap.c +++ b/libcpu/arm/am335x/trap.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/am335x/vector_gcc.S b/libcpu/arm/am335x/vector_gcc.S index 4a44a7395c..60d3c6cf1d 100644 --- a/libcpu/arm/am335x/vector_gcc.S +++ b/libcpu/arm/am335x/vector_gcc.S @@ -1,21 +1,7 @@ /* - * File : vector_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/arm926/cpuport.c b/libcpu/arm/arm926/cpuport.c index fb90df9e9f..1efb23e896 100644 --- a/libcpu/arm/arm926/cpuport.c +++ b/libcpu/arm/arm926/cpuport.c @@ -1,21 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/arm926/mmu.c b/libcpu/arm/arm926/mmu.c index b8cfd31a1c..f1e475189b 100644 --- a/libcpu/arm/arm926/mmu.c +++ b/libcpu/arm/arm926/mmu.c @@ -1,21 +1,7 @@ /* - * File : mmu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/arm926/mmu.h b/libcpu/arm/arm926/mmu.h index 34fc8f0824..7b930f5358 100644 --- a/libcpu/arm/arm926/mmu.h +++ b/libcpu/arm/arm926/mmu.h @@ -1,21 +1,7 @@ /* - * File : mmu.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/arm926/stack.c b/libcpu/arm/arm926/stack.c index 966088f829..fa98feb824 100644 --- a/libcpu/arm/arm926/stack.c +++ b/libcpu/arm/arm926/stack.c @@ -1,21 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/arm926/start_gcc.S b/libcpu/arm/arm926/start_gcc.S index 130bc041f8..fee8e018cb 100644 --- a/libcpu/arm/arm926/start_gcc.S +++ b/libcpu/arm/arm926/start_gcc.S @@ -1,21 +1,7 @@ /* - * File : start_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes @@ -138,7 +124,7 @@ Reset_Handler: MSR CPSR_cxsf, R0 @; Set CO-Processor - @; little-end,disbale I/D Cache MMU, vector table is 0x00000000 + @; little-end锛宒isbale I/D Cache MMU, vector table is 0x00000000 MRC P15, 0, R0, C1, C0, 0 @; Read CP15 LDR R1, =0x00003085 @; set clear bits BIC R0, R0, R1 diff --git a/libcpu/arm/arm926/trap.c b/libcpu/arm/arm926/trap.c index 726f22a557..054cc2741a 100644 --- a/libcpu/arm/arm926/trap.c +++ b/libcpu/arm/arm926/trap.c @@ -1,21 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/armv6/arm_entry_gcc.S b/libcpu/arm/armv6/arm_entry_gcc.S index 3aa9930d2b..6d4ac111d0 100644 --- a/libcpu/arm/armv6/arm_entry_gcc.S +++ b/libcpu/arm/armv6/arm_entry_gcc.S @@ -1,21 +1,7 @@ /* - * File : arm_entry_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/armv6/armv6.h b/libcpu/arm/armv6/armv6.h index 860f09661f..659ce90721 100644 --- a/libcpu/arm/armv6/armv6.h +++ b/libcpu/arm/armv6/armv6.h @@ -1,21 +1,7 @@ /* - * File : armv6.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/armv6/context_gcc.S b/libcpu/arm/armv6/context_gcc.S index 6f0b4333bb..0446109c92 100644 --- a/libcpu/arm/armv6/context_gcc.S +++ b/libcpu/arm/armv6/context_gcc.S @@ -1,21 +1,7 @@ /* - * File : context.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/armv6/cpuport.c b/libcpu/arm/armv6/cpuport.c index a0578a6d69..c8e9201722 100644 --- a/libcpu/arm/armv6/cpuport.c +++ b/libcpu/arm/armv6/cpuport.c @@ -1,21 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/armv6/mmu.c b/libcpu/arm/armv6/mmu.c index 2d47e999ce..ae3cf73559 100644 --- a/libcpu/arm/armv6/mmu.c +++ b/libcpu/arm/armv6/mmu.c @@ -1,21 +1,7 @@ /* - * File : mmu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/armv6/mmu.h b/libcpu/arm/armv6/mmu.h index f6e788d13d..4df61ac21d 100644 --- a/libcpu/arm/armv6/mmu.h +++ b/libcpu/arm/armv6/mmu.h @@ -1,21 +1,7 @@ /* - * File : mmu.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/armv6/stack.c b/libcpu/arm/armv6/stack.c index 648ea7dbf5..52de999fc2 100644 --- a/libcpu/arm/armv6/stack.c +++ b/libcpu/arm/armv6/stack.c @@ -1,21 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/armv6/vfp.c b/libcpu/arm/armv6/vfp.c index e4321271c6..9aa8d34fcc 100644 --- a/libcpu/arm/armv6/vfp.c +++ b/libcpu/arm/armv6/vfp.c @@ -1,21 +1,7 @@ /* - * File : vfp.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/armv6/vfp.h b/libcpu/arm/armv6/vfp.h index 0ec7b26b72..c347dbe0a6 100644 --- a/libcpu/arm/armv6/vfp.h +++ b/libcpu/arm/armv6/vfp.h @@ -1,21 +1,7 @@ /* - * File : vfp.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/common/backtrace.c b/libcpu/arm/common/backtrace.c index 03ee6143e4..f61c69ef01 100644 --- a/libcpu/arm/common/backtrace.c +++ b/libcpu/arm/common/backtrace.c @@ -1,11 +1,7 @@ /* - * File : backtrace.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, 2008 RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/common/div0.c b/libcpu/arm/common/div0.c index 128a1eb859..0cb3e09b54 100644 --- a/libcpu/arm/common/div0.c +++ b/libcpu/arm/common/div0.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ void __div0 (void) { while (1) ; diff --git a/libcpu/arm/common/divsi3.S b/libcpu/arm/common/divsi3.S index 01eac6aabf..3941bfc476 100644 --- a/libcpu/arm/common/divsi3.S +++ b/libcpu/arm/common/divsi3.S @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* $NetBSD: divsi3.S,v 1.5 2005/02/26 22:58:56 perry Exp $ */ /* diff --git a/libcpu/arm/common/showmem.c b/libcpu/arm/common/showmem.c index 38f037f83d..b770e4ce17 100644 --- a/libcpu/arm/common/showmem.c +++ b/libcpu/arm/common/showmem.c @@ -1,11 +1,7 @@ /* - * File : showmem.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, 2008 RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-a/armv7.h b/libcpu/arm/cortex-a/armv7.h index 69c556eb3c..d22f72fa68 100644 --- a/libcpu/arm/cortex-a/armv7.h +++ b/libcpu/arm/cortex-a/armv7.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __ARMV7_H__ #define __ARMV7_H__ diff --git a/libcpu/arm/cortex-a/context_gcc.S b/libcpu/arm/cortex-a/context_gcc.S index 01593a7c0a..97b3dbc447 100644 --- a/libcpu/arm/cortex-a/context_gcc.S +++ b/libcpu/arm/cortex-a/context_gcc.S @@ -1,21 +1,7 @@ /* - * File : context.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-a/cp15.h b/libcpu/arm/cortex-a/cp15.h index ebea3f0fe3..486f38200d 100644 --- a/libcpu/arm/cortex-a/cp15.h +++ b/libcpu/arm/cortex-a/cp15.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __CP15_H__ #define __CP15_H__ diff --git a/libcpu/arm/cortex-a/cp15_gcc.S b/libcpu/arm/cortex-a/cp15_gcc.S index f1ed6492aa..0e3e60655c 100644 --- a/libcpu/arm/cortex-a/cp15_gcc.S +++ b/libcpu/arm/cortex-a/cp15_gcc.S @@ -1,22 +1,7 @@ /* - * File : cp15_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team - * http://www.rt-thread.org + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-a/cpu.c b/libcpu/arm/cortex-a/cpu.c index 7dd426e4dd..2d78715011 100644 --- a/libcpu/arm/cortex-a/cpu.c +++ b/libcpu/arm/cortex-a/cpu.c @@ -1,11 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-a/interrupt.c b/libcpu/arm/cortex-a/interrupt.c index 942c074721..3934c84aaf 100644 --- a/libcpu/arm/cortex-a/interrupt.c +++ b/libcpu/arm/cortex-a/interrupt.c @@ -1,11 +1,7 @@ /* - * File : interrupt.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013-2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-a/mmu.c b/libcpu/arm/cortex-a/mmu.c index b2503e4260..58acdd8145 100644 --- a/libcpu/arm/cortex-a/mmu.c +++ b/libcpu/arm/cortex-a/mmu.c @@ -1,11 +1,7 @@ /* - * File : mmu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-a/pmu.c b/libcpu/arm/cortex-a/pmu.c index 07911a2db7..8ffc1dede6 100644 --- a/libcpu/arm/cortex-a/pmu.c +++ b/libcpu/arm/cortex-a/pmu.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include "pmu.h" diff --git a/libcpu/arm/cortex-a/pmu.h b/libcpu/arm/cortex-a/pmu.h index 05c1420dd8..fb8390133d 100644 --- a/libcpu/arm/cortex-a/pmu.h +++ b/libcpu/arm/cortex-a/pmu.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __PMU_H__ #define __PMU_H__ diff --git a/libcpu/arm/cortex-a/stack.c b/libcpu/arm/cortex-a/stack.c index e60e8c7170..1d3ebcb9e6 100644 --- a/libcpu/arm/cortex-a/stack.c +++ b/libcpu/arm/cortex-a/stack.c @@ -1,11 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-a/start_gcc.S b/libcpu/arm/cortex-a/start_gcc.S index ca8c1f930f..2f16d16807 100644 --- a/libcpu/arm/cortex-a/start_gcc.S +++ b/libcpu/arm/cortex-a/start_gcc.S @@ -1,21 +1,7 @@ /* - * File : start_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013-2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-a/trap.c b/libcpu/arm/cortex-a/trap.c index 515f7cb544..f3b2c26e6d 100644 --- a/libcpu/arm/cortex-a/trap.c +++ b/libcpu/arm/cortex-a/trap.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-a/vector_gcc.S b/libcpu/arm/cortex-a/vector_gcc.S index 4a44a7395c..60d3c6cf1d 100644 --- a/libcpu/arm/cortex-a/vector_gcc.S +++ b/libcpu/arm/cortex-a/vector_gcc.S @@ -1,21 +1,7 @@ /* - * File : vector_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-m0/context_gcc.S b/libcpu/arm/cortex-m0/context_gcc.S index 227a9aac2d..d9993247e2 100644 --- a/libcpu/arm/cortex-m0/context_gcc.S +++ b/libcpu/arm/cortex-m0/context_gcc.S @@ -1,11 +1,7 @@ /* - * File : context_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 - 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-m0/cpuport.c b/libcpu/arm/cortex-m0/cpuport.c index f8d475a4c8..f5ff8ec113 100644 --- a/libcpu/arm/cortex-m0/cpuport.c +++ b/libcpu/arm/cortex-m0/cpuport.c @@ -1,11 +1,7 @@ /* - * File : cpuport.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-m3/context_gcc.S b/libcpu/arm/cortex-m3/context_gcc.S index 2e279c4be9..d17a8aa12c 100644 --- a/libcpu/arm/cortex-m3/context_gcc.S +++ b/libcpu/arm/cortex-m3/context_gcc.S @@ -1,11 +1,7 @@ /* - * File : context_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-m3/cpuport.c b/libcpu/arm/cortex-m3/cpuport.c index 3c7e0ee857..a386747750 100644 --- a/libcpu/arm/cortex-m3/cpuport.c +++ b/libcpu/arm/cortex-m3/cpuport.c @@ -1,11 +1,7 @@ /* - * File : cpuport.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-m4/context_gcc.S b/libcpu/arm/cortex-m4/context_gcc.S index d003ce0ea0..420f4f8ae3 100644 --- a/libcpu/arm/cortex-m4/context_gcc.S +++ b/libcpu/arm/cortex-m4/context_gcc.S @@ -1,11 +1,7 @@ /* - * File : context_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-m7/context_gcc.S b/libcpu/arm/cortex-m7/context_gcc.S index d003ce0ea0..420f4f8ae3 100644 --- a/libcpu/arm/cortex-m7/context_gcc.S +++ b/libcpu/arm/cortex-m7/context_gcc.S @@ -1,11 +1,7 @@ /* - * File : context_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-r4/armv7.h b/libcpu/arm/cortex-r4/armv7.h index 7dc3471c70..3adcb92c5d 100644 --- a/libcpu/arm/cortex-r4/armv7.h +++ b/libcpu/arm/cortex-r4/armv7.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __ARMV7_H__ #define __ARMV7_H__ diff --git a/libcpu/arm/cortex-r4/context_gcc.S b/libcpu/arm/cortex-r4/context_gcc.S index 5256645ab8..50e1069c06 100644 --- a/libcpu/arm/cortex-r4/context_gcc.S +++ b/libcpu/arm/cortex-r4/context_gcc.S @@ -1,11 +1,7 @@ /* - * File : context_ccs.asm - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-r4/cpu.c b/libcpu/arm/cortex-r4/cpu.c index 89369d5209..d2e8130e7c 100644 --- a/libcpu/arm/cortex-r4/cpu.c +++ b/libcpu/arm/cortex-r4/cpu.c @@ -1,11 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-r4/interrupt.c b/libcpu/arm/cortex-r4/interrupt.c index ba2d99e998..5b3ad1ccc1 100644 --- a/libcpu/arm/cortex-r4/interrupt.c +++ b/libcpu/arm/cortex-r4/interrupt.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-r4/stack.c b/libcpu/arm/cortex-r4/stack.c index 852c6ea384..612cde3bfb 100644 --- a/libcpu/arm/cortex-r4/stack.c +++ b/libcpu/arm/cortex-r4/stack.c @@ -1,11 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-r4/start_gcc.S b/libcpu/arm/cortex-r4/start_gcc.S index 1ed1e396af..ab77b98781 100644 --- a/libcpu/arm/cortex-r4/start_gcc.S +++ b/libcpu/arm/cortex-r4/start_gcc.S @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ @------------------------------------------------------------------------------- @ sys_core.asm @ diff --git a/libcpu/arm/cortex-r4/trap.c b/libcpu/arm/cortex-r4/trap.c index b72237dac2..d50ad06538 100644 --- a/libcpu/arm/cortex-r4/trap.c +++ b/libcpu/arm/cortex-r4/trap.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/cortex-r4/vector_gcc.S b/libcpu/arm/cortex-r4/vector_gcc.S index da91421f43..6cb2e9fab6 100644 --- a/libcpu/arm/cortex-r4/vector_gcc.S +++ b/libcpu/arm/cortex-r4/vector_gcc.S @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ @------------------------------------------------------------------------------- @ sys_intvecs.asm @ diff --git a/libcpu/arm/dm36x/context_gcc.S b/libcpu/arm/dm36x/context_gcc.S index cfada09bef..7eed72a4dc 100644 --- a/libcpu/arm/dm36x/context_gcc.S +++ b/libcpu/arm/dm36x/context_gcc.S @@ -1,21 +1,7 @@ /* - * File : context.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/dm36x/cpuport.c b/libcpu/arm/dm36x/cpuport.c index bf012b10fa..f6e8a20056 100644 --- a/libcpu/arm/dm36x/cpuport.c +++ b/libcpu/arm/dm36x/cpuport.c @@ -1,21 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/dm36x/mmu.c b/libcpu/arm/dm36x/mmu.c index 8c3100659c..abb2c1cd9e 100644 --- a/libcpu/arm/dm36x/mmu.c +++ b/libcpu/arm/dm36x/mmu.c @@ -1,21 +1,7 @@ /* - * File : mmu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/dm36x/mmu.h b/libcpu/arm/dm36x/mmu.h index 9dd802cf3b..3410b881ac 100644 --- a/libcpu/arm/dm36x/mmu.h +++ b/libcpu/arm/dm36x/mmu.h @@ -1,21 +1,7 @@ /* - * File : mmu.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/dm36x/stack.c b/libcpu/arm/dm36x/stack.c index fd56e7a497..9d7385b9c8 100644 --- a/libcpu/arm/dm36x/stack.c +++ b/libcpu/arm/dm36x/stack.c @@ -1,21 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/lpc214x/context_gcc.S b/libcpu/arm/lpc214x/context_gcc.S index 0a4b1ce731..2b1856be3d 100644 --- a/libcpu/arm/lpc214x/context_gcc.S +++ b/libcpu/arm/lpc214x/context_gcc.S @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ .global rt_hw_interrupt_disable .global rt_hw_interrupt_enable .global rt_hw_context_switch @@ -8,7 +16,7 @@ /* * rt_base_t rt_hw_interrupt_disable(); - ¹Ø±ÕÖжϣ¬¹Ø±ÕÇ°·µ»ØCPSR¼Ä´æÆ÷Öµ + 关闭中断,关闭å‰è¿”回CPSR寄存器值 */ rt_hw_interrupt_disable: //EXPORT rt_hw_interrupt_disable @@ -20,7 +28,7 @@ rt_hw_interrupt_disable: /* * void rt_hw_interrupt_enable(rt_base_t level); - »Ö¸´ÖжÏ״̬ + æ¢å¤ä¸­æ–­çŠ¶æ€ */ rt_hw_interrupt_enable: //EXPORT rt_hw_interrupt_enable @@ -32,70 +40,70 @@ rt_hw_interrupt_enable: * void rt_hw_context_switch(rt_uint32 from, rt_uint32 to); * r0 --> from * r1 --> to - ½øÐÐÏ̵߳ÄÉÏÏÂÎÄÇл» + è¿›è¡Œçº¿ç¨‹çš„ä¸Šä¸‹æ–‡åˆ‡æ¢ */ rt_hw_context_switch: //EXPORT rt_hw_context_switch STMFD sp!, {lr} /* push pc (lr should be pushed in place of PC) */ - /* °ÑLR¼Ä´æÆ÷ѹÈëÕ»£¨Õâ¸öº¯Êý·µ»ØºóµÄÏÂÒ»¸öÖ´Ðд¦£© */ + /* 把LR寄存器压入栈(这个函数返回åŽçš„下一个执行处) */ STMFD sp!, {r0-r12, lr} /* push lr & register file */ - /* °ÑR0 ¨C R12ÒÔ¼°LRѹÈëÕ» */ + /* 把R0 – R12以åŠLR压入栈 */ - MRS r4, cpsr /* ¶ÁÈ¡CPSR¼Ä´æÆ÷µ½R4¼Ä´æÆ÷ */ + MRS r4, cpsr /* 读å–CPSR寄存器到R4寄存器 */ STMFD sp!, {r4} /* push cpsr */ - /* °ÑR4¼Ä´æÆ÷ѹջ£¨¼´ÉÏÒ»Ö¸ÁîÈ¡³öµÄCPSR¼Ä´æÆ÷£© */ - MRS r4, spsr /* ¶ÁÈ¡SPSR¼Ä´æÆ÷µ½R4¼Ä´æÆ÷ */ + /* 把R4寄存器压栈(å³ä¸Šä¸€æŒ‡ä»¤å–出的CPSR寄存器) */ + MRS r4, spsr /* 读å–SPSR寄存器到R4寄存器 */ STMFD sp!, {r4} /* push spsr */ - /* °ÑR4¼Ä´æÆ÷ѹջ£¨¼´SPSR¼Ä´æÆ÷£© */ + /* 把R4寄存器压栈(å³SPSR寄存器) */ STR sp, [r0] /* store sp in preempted tasks TCB */ - /* °ÑÕ»Ö¸Õë¸üе½TCBµÄsp£¬ÊÇÓÉR0´«Èë´Ëº¯Êý */ - /* µ½ÕâÀï»»³öÏ̵߳ÄÉÏÏÂÎĶ¼±£´æÔÚÕ»ÖÐ */ + /* 把栈指针更新到TCBçš„sp,是由R0传入此函数 */ + /* 到这里æ¢å‡ºçº¿ç¨‹çš„上下文都ä¿å­˜åœ¨æ ˆä¸­ */ LDR sp, [r1] /* get new task stack pointer */ - /* ÔØÈëÇл»µ½Ï̵߳ÄTCBµÄsp */ - /* ´ÓÇл»µ½Ï̵߳ÄÕ»Öлָ´ÉÏÏÂÎÄ£¬´ÎÐòºÍ±£´æµÄʱºò¸ÕºÃÏà·´ */ + /* 载入切æ¢åˆ°çº¿ç¨‹çš„TCBçš„sp */ + /* 从切æ¢åˆ°çº¿ç¨‹çš„栈中æ¢å¤ä¸Šä¸‹æ–‡ï¼Œæ¬¡åºå’Œä¿å­˜çš„时候刚好相å */ LDMFD sp!, {r4} /* pop new task spsr */ - /* ³öÕ»µ½R4¼Ä´æÆ÷£¨±£´æÁËSPSR¼Ä´æÆ÷£© */ - MSR spsr_cxsf, r4 /* »Ö¸´SPSR¼Ä´æÆ÷ */ + /* 出栈到R4寄存器(ä¿å­˜äº†SPSR寄存器) */ + MSR spsr_cxsf, r4 /* æ¢å¤SPSR寄存器 */ LDMFD sp!, {r4} /* pop new task cpsr */ - /* ³öÕ»µ½R4¼Ä´æÆ÷£¨±£´æÁËCPSR¼Ä´æÆ÷£© */ - MSR cpsr_cxsf, r4 /* »Ö¸´CPSR¼Ä´æÆ÷ */ + /* 出栈到R4寄存器(ä¿å­˜äº†CPSR寄存器) */ + MSR cpsr_cxsf, r4 /* æ¢å¤CPSR寄存器 */ LDMFD sp!, {r0-r12, lr, pc} /* pop new task r0-r12, lr & pc */ - /* ¶ÔR0 ¨C R12¼°LR¡¢PC½øÐлָ´ */ + /* 对R0 – R12åŠLRã€PC进行æ¢å¤ */ //ENDP rt_hw_context_switch_to: //EXPORT rt_hw_context_switch_to LDR sp, [r0] /* get new task stack pointer */ - /* »ñµÃÇл»µ½Ï̵߳ÄSPÖ¸Õë */ + /* 获得切æ¢åˆ°çº¿ç¨‹çš„SP指针 */ LDMFD sp!, {r4} /* pop new task spsr */ - /* ³öÕ»R4¼Ä´æÆ÷£¨±£´æÁËSPSR¼Ä´æÆ÷Öµ£© */ - MSR spsr_cxsf, r4 /* »Ö¸´SPSR¼Ä´æÆ÷ */ + /* 出栈R4寄存器(ä¿å­˜äº†SPSR寄存器值) */ + MSR spsr_cxsf, r4 /* æ¢å¤SPSR寄存器 */ LDMFD sp!, {r4} /* pop new task cpsr */ - /* ³öÕ»R4¼Ä´æÆ÷£¨±£´æÁËCPSR¼Ä´æÆ÷Öµ£© */ - MSR cpsr_cxsf, r4 /* »Ö¸´CPSR¼Ä´æÆ÷ */ + /* 出栈R4寄存器(ä¿å­˜äº†CPSR寄存器值) */ + MSR cpsr_cxsf, r4 /* æ¢å¤CPSR寄存器 */ LDMFD sp!, {r0-r12, lr, pc} /* pop new task r0-r12, lr & pc */ - /* »Ö¸´R0 ¨C R12£¬LR¼°PC¼Ä´æÆ÷ */ + /* æ¢å¤R0 – R12,LRåŠPC寄存器 */ //ENDP rt_hw_context_switch_interrupt: //EXPORT rt_hw_context_switch_interrupt LDR r2, =rt_thread_switch_interrupt_flag - LDR r3, [r2] /* ÔØÈëÖжÏÖÐÇл»±êÖµØÖ· */ - CMP r3, #1 /* µÈÓÚ 1 £¿*/ - BEQ _reswitch /* Èç¹ûµÈÓÚ1£¬Ìøתµ½_reswitch*/ + LDR r3, [r2] /* 载入中断中切æ¢æ ‡è‡´åœ°å€ */ + CMP r3, #1 /* 等于 1 ?*/ + BEQ _reswitch /* 如果等于1,跳转到_reswitch*/ MOV r3, #1 /* set rt_thread_switch_interrupt_flag to 1*/ - /* ÉèÖÃÖжÏÖÐÇл»±ê־λ1 */ + /* 设置中断中切æ¢æ ‡å¿—ä½1 */ STR r3, [r2] /* */ LDR r2, =rt_interrupt_from_thread /* set rt_interrupt_from_thread*/ - STR r0, [r2] /* ±£´æÇл»³öÏß³ÌÕ»Ö¸Õë*/ + STR r0, [r2] /* ä¿å­˜åˆ‡æ¢å‡ºçº¿ç¨‹æ ˆæŒ‡é’ˆ*/ _reswitch: LDR r2, =rt_interrupt_to_thread /* set rt_interrupt_to_thread*/ - STR r1, [r2] /* ±£´æÇл»µ½Ïß³ÌÕ»Ö¸Õë*/ + STR r1, [r2] /* ä¿å­˜åˆ‡æ¢åˆ°çº¿ç¨‹æ ˆæŒ‡é’ˆ*/ BX lr //ENDP diff --git a/libcpu/arm/lpc214x/cpuport.c b/libcpu/arm/lpc214x/cpuport.c index 1cd33b897b..d5c1c5dce6 100644 --- a/libcpu/arm/lpc214x/cpuport.c +++ b/libcpu/arm/lpc214x/cpuport.c @@ -1,11 +1,7 @@ /* - * File : cpuport.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 - 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/lpc214x/startup_gcc.S b/libcpu/arm/lpc214x/startup_gcc.S index ce13d57083..5b9b04f0d1 100644 --- a/libcpu/arm/lpc214x/startup_gcc.S +++ b/libcpu/arm/lpc214x/startup_gcc.S @@ -1,4 +1,12 @@ - .extern main /* ÒýÈëÍⲿCÈë¿Ú */ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ + .extern main /* 引入外部Cå…¥å£ */ .extern rt_interrupt_enter .extern rt_interrupt_leave @@ -54,7 +62,7 @@ .equ VICIntEnClr, 0xFFFFF014 .equ VICIntSelect, 0xFFFFF00C -/************* Ä¿±êÅäÖýáÊø *************/ +/************* 目标é…ç½®ç»“æŸ *************/ /* Setup the operating mode & stack.*/ @@ -217,94 +225,94 @@ __pabt: b . /* program abort */ __dabt: b . /* data abort */ __fiq : b . /* FIQ */ -/* IRQÈë¿Ú */ +/* IRQå…¥å£ */ IRQ_Handler : - stmfd sp!, {r0-r12,lr} /* ¶ÔR0 ¨C R12£¬LR¼Ä´æÆ÷ѹջ */ - bl rt_interrupt_enter /* ֪ͨRT-Thread½øÈëÖжÏģʽ */ - bl rt_hw_trap_irq /* ÏàÓ¦ÖжϷþÎñÀý³Ì´¦Àí */ - bl rt_interrupt_leave /* ; ֪ͨRT-ThreadÒªÀ뿪ÖжÏģʽ */ + stmfd sp!, {r0-r12,lr} /* 对R0 – R12,LR寄存器压栈 */ + bl rt_interrupt_enter /* 通知RT-Threadè¿›å…¥ä¸­æ–­æ¨¡å¼ */ + bl rt_hw_trap_irq /* 相应中断æœåŠ¡ä¾‹ç¨‹å¤„ç† */ + bl rt_interrupt_leave /* ; 通知RT-Threadè¦ç¦»å¼€ä¸­æ–­æ¨¡å¼ */ - /* Èç¹ûÉèÖÃÁËrt_thread_switch_interrupt_flag£¬½øÐÐÖжÏÖеÄÏß³ÌÉÏÏÂÎÄ´¦Àí */ + /* 如果设置了rt_thread_switch_interrupt_flagï¼Œè¿›è¡Œä¸­æ–­ä¸­çš„çº¿ç¨‹ä¸Šä¸‹æ–‡å¤„ç† */ ldr r0, =rt_thread_switch_interrupt_flag ldr r1, [r0] cmp r1, #1 - beq rt_hw_context_switch_interrupt_do /* ÖжÏÖÐÇл»·¢Éú */ - /* Èç¹ûÌøתÁË£¬½«²»»á»ØÀ´ */ - ldmfd sp!, {r0-r12,lr} /* »Ö¸´Õ» */ - subs pc, lr, #4 /* ´ÓIRQÖзµ»Ø */ + beq rt_hw_context_switch_interrupt_do /* 中断中切æ¢å‘生 */ + /* 如果跳转了,将ä¸ä¼šå›žæ¥ */ + ldmfd sp!, {r0-r12,lr} /* æ¢å¤æ ˆ */ + subs pc, lr, #4 /* 从IRQ中返回 */ /* * void rt_hw_context_switch_interrupt_do(rt_base_t flag) -* ÖжϽáÊøºóµÄÉÏÏÂÎÄÇл» +* 中断结æŸåŽçš„ä¸Šä¸‹æ–‡åˆ‡æ¢ */ rt_hw_context_switch_interrupt_do: mov r1, #0 /* clear flag */ - /* Çå³þÖжÏÖÐÇл»±êÖ¾ */ + /* 清楚中断中切æ¢æ ‡å¿— */ str r1, [r0] /* */ ldmfd sp!, {r0-r12,lr}/* reload saved registers */ - /* ÏȻָ´±»ÖжÏÏ̵߳ÄÉÏÏÂÎÄ */ + /* å…ˆæ¢å¤è¢«ä¸­æ–­çº¿ç¨‹çš„上下文 */ stmfd sp!, {r0-r3} /* save r0-r3 */ - /* ¶ÔR0 ¨C R3ѹջ£¬ÒòΪºóÃæ»áÓõ½ */ - mov r1, sp /* °Ñ´Ë´¦µÄÕ»Öµ±£´æµ½R1 */ + /* 对R0 – R3压栈,因为åŽé¢ä¼šç”¨åˆ° */ + mov r1, sp /* 把此处的栈值ä¿å­˜åˆ°R1 */ add sp, sp, #16 /* restore sp */ - /* »Ö¸´IRQµÄÕ»£¬ºóÃæ»áÌø³öIRQģʽ */ + /* æ¢å¤IRQ的栈,åŽé¢ä¼šè·³å‡ºIRQæ¨¡å¼ */ sub r2, lr, #4 /* save old task's pc to r2 */ - /* ±£´æÇл»³öÏ̵߳ÄPCµ½R2 */ + /* ä¿å­˜åˆ‡æ¢å‡ºçº¿ç¨‹çš„PC到R2 */ - mrs r3, spsr /* disable interrupt ±£´æÖжÏÇ°µÄCPSRµ½R3¼Ä´æÆ÷ */ - /* »ñµÃSPSR¼Ä´æÆ÷Öµ */ + mrs r3, spsr /* disable interrupt ä¿å­˜ä¸­æ–­å‰çš„CPSR到R3寄存器 */ + /* 获得SPSR寄存器值 */ orr r0, r3, #I_BIT|F_BIT - msr spsr_c, r0 /* ¹Ø±ÕSPSRÖеÄIRQ/FIQÖÐ¶Ï */ + msr spsr_c, r0 /* 关闭SPSR中的IRQ/FIQ中断 */ - ldr r0, =.+8 /* °Ñµ±Ç°µØÖ·+8ÔØÈëµ½R0¼Ä´æÆ÷ÖÐ switch to interrupted task's stack */ - movs pc, r0 /* Í˳öIRQģʽ£¬ÓÉÓÚSPSR±»ÉèÖóɹØÖжÏģʽ */ - /* ËùÒÔ´ÓIRQ·µ»Øºó£¬Öжϲ¢Ã»Óдò¿ª - ; R0¼Ä´æÆ÷ÖеÄλÖÃʵ¼Ê¾ÍÊÇÏÂÒ»ÌõÖ¸Á - ; ¼´PC¼ÌÐøÍùÏÂ×ß - ; ´Ëʱ - ; ģʽÒѾ­»»³ÉÖжÏÇ°µÄSVCģʽ£¬ - ; SP¼Ä´æÆ÷Ò²ÊÇSVCģʽϵÄÕ»¼Ä´æÆ÷ - ; R1±£´æIRQģʽϵÄÕ»Ö¸Õë - ; R2±£´æÇл»³öÏ̵߳ÄPC - ; R3±£´æÇл»³öÏ̵߳ÄCPSR */ + ldr r0, =.+8 /* 把当å‰åœ°å€+8载入到R0寄存器中 switch to interrupted task's stack */ + movs pc, r0 /* 退出IRQ模å¼ï¼Œç”±äºŽSPSR被设置æˆå…³ä¸­æ–­æ¨¡å¼ */ + /* 所以从IRQ返回åŽï¼Œä¸­æ–­å¹¶æ²¡æœ‰æ‰“å¼€ + ; R0寄存器中的ä½ç½®å®žé™…就是下一æ¡æŒ‡ä»¤ï¼Œ + ; å³PC继续往下走 + ; 此时 + ; 模å¼å·²ç»æ¢æˆä¸­æ–­å‰çš„SVC模å¼ï¼Œ + ; SP寄存器也是SVC模å¼ä¸‹çš„栈寄存器 + ; R1ä¿å­˜IRQ模å¼ä¸‹çš„栈指针 + ; R2ä¿å­˜åˆ‡æ¢å‡ºçº¿ç¨‹çš„PC + ; R3ä¿å­˜åˆ‡æ¢å‡ºçº¿ç¨‹çš„CPSR */ stmfd sp!, {r2} /* push old task's pc */ - /* ±£´æÇл»³öÈÎÎñµÄPC */ + /* ä¿å­˜åˆ‡æ¢å‡ºä»»åŠ¡çš„PC */ stmfd sp!, {r4-r12,lr}/* push old task's lr,r12-r4 */ - /* ±£´æR4 ¨C R12£¬LR¼Ä´æÆ÷ */ + /* ä¿å­˜R4 – R12,LR寄存器 */ mov r4, r1 /* Special optimised code below */ - /* R1±£´æÓÐѹջR0 ¨C R3´¦µÄջλÖà */ - mov r5, r3 /* R3Çл»³öÏ̵߳ÄCPSR */ - ldmfd r4!, {r0-r3} /* »Ö¸´R0 ¨C R3 */ + /* R1ä¿å­˜æœ‰åŽ‹æ ˆR0 – R3处的栈ä½ç½® */ + mov r5, r3 /* R3切æ¢å‡ºçº¿ç¨‹çš„CPSR */ + ldmfd r4!, {r0-r3} /* æ¢å¤R0 – R3 */ stmfd sp!, {r0-r3} /* push old task's r3-r0 */ - /* R0 ¨C R3ѹջµ½Çл»³öÏß³Ì */ + /* R0 – R3压栈到切æ¢å‡ºçº¿ç¨‹ */ stmfd sp!, {r5} /* push old task's psr */ - /* Çл»³öÏß³ÌCPSRѹջ */ + /* 切æ¢å‡ºçº¿ç¨‹CPSR压栈 */ mrs r4, spsr stmfd sp!, {r4} /* push old task's spsr */ - /* Çл»³öÏß³ÌSPSRѹջ */ + /* 切æ¢å‡ºçº¿ç¨‹SPSR压栈 */ ldr r4, =rt_interrupt_from_thread ldr r5, [r4] str sp, [r5] /* store sp in preempted tasks's TCB */ - /* ±£´æÇл»³öÏ̵߳ÄSPÖ¸Õë */ + /* ä¿å­˜åˆ‡æ¢å‡ºçº¿ç¨‹çš„SP指针 */ ldr r6, =rt_interrupt_to_thread ldr r6, [r6] ldr sp, [r6] /* get new task's stack pointer */ - /* »ñµÃÇл»µ½Ï̵߳ÄÕ» */ + /* 获得切æ¢åˆ°çº¿ç¨‹çš„æ ˆ */ ldmfd sp!, {r4} /* pop new task's spsr */ - /* »Ö¸´SPSR */ + /* æ¢å¤SPSR */ msr SPSR_cxsf, r4 ldmfd sp!, {r4} /* pop new task's psr */ - /* »Ö¸´CPSR */ + /* æ¢å¤CPSR */ msr CPSR_cxsf, r4 ldmfd sp!, {r0-r12,lr,pc} /* pop new task's r0-r12,lr & pc */ - /* »Ö¸´R0 ¨C R12£¬LR¼°PC¼Ä´æÆ÷ */ + /* æ¢å¤R0 – R12,LRåŠPC寄存器 */ -/* ´úÂë¼ÓÃܹ¦ÄÜ */ +/* 代ç åŠ å¯†åŠŸèƒ½ */ #if defined(CODE_PROTECTION) .org 0x01FC .word 0x87654321 diff --git a/libcpu/arm/lpc24xx/LPC24xx.h b/libcpu/arm/lpc24xx/LPC24xx.h index 7c70fd1aa5..5cb9730854 100644 --- a/libcpu/arm/lpc24xx/LPC24xx.h +++ b/libcpu/arm/lpc24xx/LPC24xx.h @@ -1,11 +1,7 @@ /* - * File : LPC2478.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/lpc24xx/context_gcc.S b/libcpu/arm/lpc24xx/context_gcc.S index df22aacbed..b2c3abeee4 100644 --- a/libcpu/arm/lpc24xx/context_gcc.S +++ b/libcpu/arm/lpc24xx/context_gcc.S @@ -1,11 +1,7 @@ /* - * File : context.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/lpc24xx/cpu.c b/libcpu/arm/lpc24xx/cpu.c index 0265ed96aa..f3a61e16a3 100644 --- a/libcpu/arm/lpc24xx/cpu.c +++ b/libcpu/arm/lpc24xx/cpu.c @@ -1,11 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/lpc24xx/interrupt.c b/libcpu/arm/lpc24xx/interrupt.c index 16d1dd7e99..64609ef06e 100644 --- a/libcpu/arm/lpc24xx/interrupt.c +++ b/libcpu/arm/lpc24xx/interrupt.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/lpc24xx/stack.c b/libcpu/arm/lpc24xx/stack.c index f160e9c167..0378a5f658 100644 --- a/libcpu/arm/lpc24xx/stack.c +++ b/libcpu/arm/lpc24xx/stack.c @@ -1,11 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/lpc24xx/start_gcc.S b/libcpu/arm/lpc24xx/start_gcc.S index feab6f0216..be1741da57 100644 --- a/libcpu/arm/lpc24xx/start_gcc.S +++ b/libcpu/arm/lpc24xx/start_gcc.S @@ -1,11 +1,7 @@ /* - * File : start.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/lpc24xx/start_rvds.S b/libcpu/arm/lpc24xx/start_rvds.S index e49cf2df45..e55e9ba840 100644 --- a/libcpu/arm/lpc24xx/start_rvds.S +++ b/libcpu/arm/lpc24xx/start_rvds.S @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ ;/*****************************************************************************/ ;/* LPC2400.S: Startup file for Philips LPC2400 device series */ ;/*****************************************************************************/ diff --git a/libcpu/arm/lpc24xx/trap.c b/libcpu/arm/lpc24xx/trap.c index 71d88101fc..d296bfdbfe 100644 --- a/libcpu/arm/lpc24xx/trap.c +++ b/libcpu/arm/lpc24xx/trap.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/realview-a8-vmm/armv7.h b/libcpu/arm/realview-a8-vmm/armv7.h index 69c556eb3c..d22f72fa68 100644 --- a/libcpu/arm/realview-a8-vmm/armv7.h +++ b/libcpu/arm/realview-a8-vmm/armv7.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __ARMV7_H__ #define __ARMV7_H__ diff --git a/libcpu/arm/realview-a8-vmm/context_gcc.S b/libcpu/arm/realview-a8-vmm/context_gcc.S index dba0095632..ae672d9403 100644 --- a/libcpu/arm/realview-a8-vmm/context_gcc.S +++ b/libcpu/arm/realview-a8-vmm/context_gcc.S @@ -1,21 +1,7 @@ /* - * File : context.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/realview-a8-vmm/cp15.h b/libcpu/arm/realview-a8-vmm/cp15.h index ebea3f0fe3..486f38200d 100644 --- a/libcpu/arm/realview-a8-vmm/cp15.h +++ b/libcpu/arm/realview-a8-vmm/cp15.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __CP15_H__ #define __CP15_H__ diff --git a/libcpu/arm/realview-a8-vmm/cp15_gcc.S b/libcpu/arm/realview-a8-vmm/cp15_gcc.S index f1ed6492aa..0e3e60655c 100644 --- a/libcpu/arm/realview-a8-vmm/cp15_gcc.S +++ b/libcpu/arm/realview-a8-vmm/cp15_gcc.S @@ -1,22 +1,7 @@ /* - * File : cp15_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team - * http://www.rt-thread.org + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/realview-a8-vmm/cpu.c b/libcpu/arm/realview-a8-vmm/cpu.c index 7dd426e4dd..2d78715011 100644 --- a/libcpu/arm/realview-a8-vmm/cpu.c +++ b/libcpu/arm/realview-a8-vmm/cpu.c @@ -1,11 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/realview-a8-vmm/gic.c b/libcpu/arm/realview-a8-vmm/gic.c index 4cff1bad3e..82f87b7e8f 100644 --- a/libcpu/arm/realview-a8-vmm/gic.c +++ b/libcpu/arm/realview-a8-vmm/gic.c @@ -1,11 +1,7 @@ /* - * File : gic.c, ARM Generic Interrupt Controller - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013-2014, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/realview-a8-vmm/gic.h b/libcpu/arm/realview-a8-vmm/gic.h index 41a7727da2..8fcdf05f6f 100644 --- a/libcpu/arm/realview-a8-vmm/gic.h +++ b/libcpu/arm/realview-a8-vmm/gic.h @@ -1,11 +1,7 @@ /* - * File : gic.h, ARM Generic Interrupt Controller - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/realview-a8-vmm/interrupt.c b/libcpu/arm/realview-a8-vmm/interrupt.c index ffb6c10a89..05998d2234 100644 --- a/libcpu/arm/realview-a8-vmm/interrupt.c +++ b/libcpu/arm/realview-a8-vmm/interrupt.c @@ -1,11 +1,7 @@ /* - * File : interrupt.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013-2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/realview-a8-vmm/interrupt.h b/libcpu/arm/realview-a8-vmm/interrupt.h index d81f1c81ae..7461f94da0 100644 --- a/libcpu/arm/realview-a8-vmm/interrupt.h +++ b/libcpu/arm/realview-a8-vmm/interrupt.h @@ -1,11 +1,7 @@ /* - * File : interrupt.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/realview-a8-vmm/mmu.c b/libcpu/arm/realview-a8-vmm/mmu.c index b2503e4260..58acdd8145 100644 --- a/libcpu/arm/realview-a8-vmm/mmu.c +++ b/libcpu/arm/realview-a8-vmm/mmu.c @@ -1,11 +1,7 @@ /* - * File : mmu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/realview-a8-vmm/pmu.c b/libcpu/arm/realview-a8-vmm/pmu.c index 07911a2db7..8ffc1dede6 100644 --- a/libcpu/arm/realview-a8-vmm/pmu.c +++ b/libcpu/arm/realview-a8-vmm/pmu.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include "pmu.h" diff --git a/libcpu/arm/realview-a8-vmm/pmu.h b/libcpu/arm/realview-a8-vmm/pmu.h index 05c1420dd8..fb8390133d 100644 --- a/libcpu/arm/realview-a8-vmm/pmu.h +++ b/libcpu/arm/realview-a8-vmm/pmu.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __PMU_H__ #define __PMU_H__ diff --git a/libcpu/arm/realview-a8-vmm/stack.c b/libcpu/arm/realview-a8-vmm/stack.c index 94080ae746..619a16c446 100644 --- a/libcpu/arm/realview-a8-vmm/stack.c +++ b/libcpu/arm/realview-a8-vmm/stack.c @@ -1,11 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/realview-a8-vmm/start_gcc.S b/libcpu/arm/realview-a8-vmm/start_gcc.S index 98f22ca1fe..2ec7fe6c86 100644 --- a/libcpu/arm/realview-a8-vmm/start_gcc.S +++ b/libcpu/arm/realview-a8-vmm/start_gcc.S @@ -1,21 +1,7 @@ /* - * File : start_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013-2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/realview-a8-vmm/trap.c b/libcpu/arm/realview-a8-vmm/trap.c index a6397d20d2..4a522f5126 100644 --- a/libcpu/arm/realview-a8-vmm/trap.c +++ b/libcpu/arm/realview-a8-vmm/trap.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/realview-a8-vmm/vector_gcc.S b/libcpu/arm/realview-a8-vmm/vector_gcc.S index 8d0ca27fee..46d27a3fc5 100644 --- a/libcpu/arm/realview-a8-vmm/vector_gcc.S +++ b/libcpu/arm/realview-a8-vmm/vector_gcc.S @@ -1,21 +1,7 @@ /* - * File : vector_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c24x0/context_gcc.S b/libcpu/arm/s3c24x0/context_gcc.S index 06bbd4488f..23362a9013 100644 --- a/libcpu/arm/s3c24x0/context_gcc.S +++ b/libcpu/arm/s3c24x0/context_gcc.S @@ -1,11 +1,7 @@ /* - * File : context.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c24x0/cpu.c b/libcpu/arm/s3c24x0/cpu.c index 907f08145a..4d3bf3c1ab 100644 --- a/libcpu/arm/s3c24x0/cpu.c +++ b/libcpu/arm/s3c24x0/cpu.c @@ -1,11 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c24x0/interrupt.c b/libcpu/arm/s3c24x0/interrupt.c index df0c1406d3..10ff60b95a 100644 --- a/libcpu/arm/s3c24x0/interrupt.c +++ b/libcpu/arm/s3c24x0/interrupt.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c24x0/mmu.c b/libcpu/arm/s3c24x0/mmu.c index 662ec3d50a..dc993ec9a3 100644 --- a/libcpu/arm/s3c24x0/mmu.c +++ b/libcpu/arm/s3c24x0/mmu.c @@ -1,11 +1,7 @@ /* - * File : mmu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c24x0/rtc.c b/libcpu/arm/s3c24x0/rtc.c index 601f3dda95..d0c80bce6b 100644 --- a/libcpu/arm/s3c24x0/rtc.c +++ b/libcpu/arm/s3c24x0/rtc.c @@ -1,11 +1,7 @@ /* - * File : rtc.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c24x0/rtc.h b/libcpu/arm/s3c24x0/rtc.h index f7073e259b..aafa714b0e 100644 --- a/libcpu/arm/s3c24x0/rtc.h +++ b/libcpu/arm/s3c24x0/rtc.h @@ -1,11 +1,7 @@ /* - * File : rtc.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c24x0/s3c24x0.h b/libcpu/arm/s3c24x0/s3c24x0.h index 8308148c3b..03749c5227 100644 --- a/libcpu/arm/s3c24x0/s3c24x0.h +++ b/libcpu/arm/s3c24x0/s3c24x0.h @@ -1,11 +1,7 @@ /* - * File : s3c24x0.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c24x0/serial.c b/libcpu/arm/s3c24x0/serial.c index ddf303da46..1eca1b1110 100644 --- a/libcpu/arm/s3c24x0/serial.c +++ b/libcpu/arm/s3c24x0/serial.c @@ -1,11 +1,7 @@ /* - * File : serial.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c24x0/serial.h b/libcpu/arm/s3c24x0/serial.h index e3deb5b887..8a647ef35f 100644 --- a/libcpu/arm/s3c24x0/serial.h +++ b/libcpu/arm/s3c24x0/serial.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __RT_HW_SERIAL_H__ #define __RT_HW_SERIAL_H__ diff --git a/libcpu/arm/s3c24x0/stack.c b/libcpu/arm/s3c24x0/stack.c index 315091d907..82607c3590 100644 --- a/libcpu/arm/s3c24x0/stack.c +++ b/libcpu/arm/s3c24x0/stack.c @@ -1,11 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c24x0/start_gcc.S b/libcpu/arm/s3c24x0/start_gcc.S index 142d66e2f4..4adc458094 100644 --- a/libcpu/arm/s3c24x0/start_gcc.S +++ b/libcpu/arm/s3c24x0/start_gcc.S @@ -1,11 +1,7 @@ /* - * File : start.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http:/*openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c24x0/system_clock.c b/libcpu/arm/s3c24x0/system_clock.c index c87c5966e9..833b193cce 100644 --- a/libcpu/arm/s3c24x0/system_clock.c +++ b/libcpu/arm/s3c24x0/system_clock.c @@ -1,11 +1,7 @@ /* - * File : clock.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c24x0/trap.c b/libcpu/arm/s3c24x0/trap.c index f1c81768c9..f2f389c6b0 100644 --- a/libcpu/arm/s3c24x0/trap.c +++ b/libcpu/arm/s3c24x0/trap.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c44b0/context_gcc.S b/libcpu/arm/s3c44b0/context_gcc.S index bbdc3989e4..0898cdbf87 100644 --- a/libcpu/arm/s3c44b0/context_gcc.S +++ b/libcpu/arm/s3c44b0/context_gcc.S @@ -1,11 +1,7 @@ /* - * File : context.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c44b0/cpu.c b/libcpu/arm/s3c44b0/cpu.c index 088ca2e5fe..03ebefba18 100644 --- a/libcpu/arm/s3c44b0/cpu.c +++ b/libcpu/arm/s3c44b0/cpu.c @@ -1,11 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c44b0/interrupt.c b/libcpu/arm/s3c44b0/interrupt.c index 3fc4f8c5b0..6b3eed4a39 100644 --- a/libcpu/arm/s3c44b0/interrupt.c +++ b/libcpu/arm/s3c44b0/interrupt.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c44b0/s3c44b0.h b/libcpu/arm/s3c44b0/s3c44b0.h index 16e8e3a240..7b854b718a 100644 --- a/libcpu/arm/s3c44b0/s3c44b0.h +++ b/libcpu/arm/s3c44b0/s3c44b0.h @@ -1,11 +1,7 @@ /* - * File : s3c45b0.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c44b0/serial.c b/libcpu/arm/s3c44b0/serial.c index 1e41ff8383..6af515b027 100644 --- a/libcpu/arm/s3c44b0/serial.c +++ b/libcpu/arm/s3c44b0/serial.c @@ -1,11 +1,7 @@ /* - * File : serial.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c44b0/stack.c b/libcpu/arm/s3c44b0/stack.c index 6f838cb173..12da611d5a 100644 --- a/libcpu/arm/s3c44b0/stack.c +++ b/libcpu/arm/s3c44b0/stack.c @@ -1,11 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c44b0/start_gcc.S b/libcpu/arm/s3c44b0/start_gcc.S index 17a3d0da7f..65b3d422dd 100644 --- a/libcpu/arm/s3c44b0/start_gcc.S +++ b/libcpu/arm/s3c44b0/start_gcc.S @@ -1,11 +1,7 @@ /* - * File : start.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/s3c44b0/trap.c b/libcpu/arm/s3c44b0/trap.c index 546d9b2ea0..3b93d5457e 100644 --- a/libcpu/arm/s3c44b0/trap.c +++ b/libcpu/arm/s3c44b0/trap.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/sep4020/clk.c b/libcpu/arm/sep4020/clk.c index 9de17b3077..da69e25b6d 100644 --- a/libcpu/arm/sep4020/clk.c +++ b/libcpu/arm/sep4020/clk.c @@ -1,11 +1,7 @@ /* - * File : clock.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/sep4020/cpu.c b/libcpu/arm/sep4020/cpu.c index 093f3c1b14..ee4eab626b 100644 --- a/libcpu/arm/sep4020/cpu.c +++ b/libcpu/arm/sep4020/cpu.c @@ -1,11 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/sep4020/interrupt.c b/libcpu/arm/sep4020/interrupt.c index 8b0b8bbd64..f688286d19 100644 --- a/libcpu/arm/sep4020/interrupt.c +++ b/libcpu/arm/sep4020/interrupt.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/sep4020/sep4020.h b/libcpu/arm/sep4020/sep4020.h index 022fddcc19..4ae09d0275 100644 --- a/libcpu/arm/sep4020/sep4020.h +++ b/libcpu/arm/sep4020/sep4020.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __SEP4020_H #define __SEP4020_H @@ -16,7 +24,7 @@ /* - * ¸÷Ä£¿é¼Ä´æÆ÷»ùÖµ + * å„模å—寄存器基值 */ #define ESRAM_BASE 0x04000000 @@ -46,602 +54,602 @@ /* - * INTCÄ£¿é - * »ùÖ·: 0x10000000 + * INTCæ¨¡å— + * 基å€: 0x10000000 */ -#define INTC_IER (INTC_BASE+0X000) /* IRQÖжÏÔÊÐí¼Ä´æÆ÷ */ -#define INTC_IMR (INTC_BASE+0X008) /* IRQÖжÏÆÁ±Î¼Ä´æÆ÷ */ -#define INTC_IFR (INTC_BASE+0X010) /* IRQÈí¼þÇ¿ÖÆÖжϼĴæÆ÷ */ -#define INTC_IRSR (INTC_BASE+0X018) /* IRQδ´¦ÀíÖжÏ״̬¼Ä´æÆ÷ */ -#define INTC_ISR (INTC_BASE+0X020) /* IRQÖжÏ״̬¼Ä´æÆ÷ */ -#define INTC_IMSR (INTC_BASE+0X028) /* IRQÆÁ±ÎÖжÏ״̬¼Ä´æÆ÷ */ -#define INTC_IFSR (INTC_BASE+0X030) /* IRQÖжÏ×îÖÕ״̬¼Ä´æÆ÷ */ -#define INTC_FIER (INTC_BASE+0X0C0) /* FIQÖжÏÔÊÐí¼Ä´æÆ÷ */ -#define INTC_FIMR (INTC_BASE+0X0C4) /* FIQÖжÏÆÁ±Î¼Ä´æÆ÷ */ -#define INTC_FIFR (INTC_BASE+0X0C8) /* FIQÈí¼þÇ¿ÖÆÖжϼĴæÆ÷ */ -#define INTC_FIRSR (INTC_BASE+0X0CC) /* FIQδ´¦ÀíÖжÏ״̬¼Ä´æÆ÷ */ -#define INTC_FISR (INTC_BASE+0X0D0) /* FIQÖжÏ״̬¼Ä´æÆ÷ */ -#define INTC_FIFSR (INTC_BASE+0X0D4) /* FIQÖжÏ×îÖÕ״̬¼Ä´æÆ÷ */ -#define INTC_IPLR (INTC_BASE+0X0D8) /* IRQÖжÏÓÅÏȼ¶¼Ä´æÆ÷ */ -#define INTC_ICR1 (INTC_BASE+0X0DC) /* IRQÄÚ²¿ÖжÏÓÅÏȼ¶¿ØÖƼĴæÆ÷1 */ -#define INTC_ICR2 (INTC_BASE+0X0E0) /* IRQÄÚ²¿ÖжÏÓÅÏȼ¶¿ØÖƼĴæÆ÷2 */ -#define INTC_EXICR1 (INTC_BASE+0X0E4) /* IRQÍⲿÖжÏÓÅÏȼ¶¿ØÖƼĴæÆ÷1 */ -#define INTC_EXICR2 (INTC_BASE+0X0E8) /* IRQÍⲿÖжÏÓÅÏȼ¶¿ØÖƼĴæÆ÷2 */ +#define INTC_IER (INTC_BASE+0X000) /* IRQ中断å…许寄存器 */ +#define INTC_IMR (INTC_BASE+0X008) /* IRQ中断å±è”½å¯„存器 */ +#define INTC_IFR (INTC_BASE+0X010) /* IRQ软件强制中断寄存器 */ +#define INTC_IRSR (INTC_BASE+0X018) /* IRQ未处ç†ä¸­æ–­çŠ¶æ€å¯„存器 */ +#define INTC_ISR (INTC_BASE+0X020) /* IRQ中断状æ€å¯„存器 */ +#define INTC_IMSR (INTC_BASE+0X028) /* IRQå±è”½ä¸­æ–­çŠ¶æ€å¯„存器 */ +#define INTC_IFSR (INTC_BASE+0X030) /* IRQ中断最终状æ€å¯„存器 */ +#define INTC_FIER (INTC_BASE+0X0C0) /* FIQ中断å…许寄存器 */ +#define INTC_FIMR (INTC_BASE+0X0C4) /* FIQ中断å±è”½å¯„存器 */ +#define INTC_FIFR (INTC_BASE+0X0C8) /* FIQ软件强制中断寄存器 */ +#define INTC_FIRSR (INTC_BASE+0X0CC) /* FIQ未处ç†ä¸­æ–­çŠ¶æ€å¯„存器 */ +#define INTC_FISR (INTC_BASE+0X0D0) /* FIQ中断状æ€å¯„存器 */ +#define INTC_FIFSR (INTC_BASE+0X0D4) /* FIQ中断最终状æ€å¯„存器 */ +#define INTC_IPLR (INTC_BASE+0X0D8) /* IRQ中断优先级寄存器 */ +#define INTC_ICR1 (INTC_BASE+0X0DC) /* IRQ内部中断优先级控制寄存器1 */ +#define INTC_ICR2 (INTC_BASE+0X0E0) /* IRQ内部中断优先级控制寄存器2 */ +#define INTC_EXICR1 (INTC_BASE+0X0E4) /* IRQ外部中断优先级控制寄存器1 */ +#define INTC_EXICR2 (INTC_BASE+0X0E8) /* IRQ外部中断优先级控制寄存器2 */ /* - * PMUÄ£¿é - * »ùÖ·: 0x10001000 + * PMUæ¨¡å— + * 基å€: 0x10001000 */ -#define PMU_PLTR (PMU_BASE+0X000) /* PLLµÄÎȶ¨¹ý¶Éʱ¼ä */ -#define PMU_PMCR (PMU_BASE+0X004) /* ϵͳÖ÷ʱÖÓPLLµÄ¿ØÖƼĴæÆ÷ */ -#define PMU_PUCR (PMU_BASE+0X008) /* USBʱÖÓPLLµÄ¿ØÖƼĴæÆ÷ */ -#define PMU_PCSR (PMU_BASE+0X00C) /* ÄÚ²¿Ä£¿éʱÖÓÔ´¹©¸øµÄ¿ØÖƼĴæÆ÷ */ -#define PMU_PDSLOW (PMU_BASE+0X010) /* SLOW״̬ÏÂʱÖӵķÖƵÒò×Ó */ -#define PMU_PMDR (PMU_BASE+0X014) /* оƬ¹¤×÷ģʽ¼Ä´æÆ÷ */ -#define PMU_RCTR (PMU_BASE+0X018) /* Reset¿ØÖƼĴæÆ÷ */ -#define PMU_CLRWAKUP (PMU_BASE+0X01C) /* WakeUpÇå³ý¼Ä´æÆ÷ */ +#define PMU_PLTR (PMU_BASE+0X000) /* PLL的稳定过渡时间 */ +#define PMU_PMCR (PMU_BASE+0X004) /* 系统主时钟PLL的控制寄存器 */ +#define PMU_PUCR (PMU_BASE+0X008) /* USB时钟PLL的控制寄存器 */ +#define PMU_PCSR (PMU_BASE+0X00C) /* 内部模å—时钟æºä¾›ç»™çš„控制寄存器 */ +#define PMU_PDSLOW (PMU_BASE+0X010) /* SLOW状æ€ä¸‹æ—¶é’Ÿçš„åˆ†é¢‘å› å­ */ +#define PMU_PMDR (PMU_BASE+0X014) /* 芯片工作模å¼å¯„存器 */ +#define PMU_RCTR (PMU_BASE+0X018) /* Reset控制寄存器 */ +#define PMU_CLRWAKUP (PMU_BASE+0X01C) /* WakeUp清除寄存器 */ /* - * RTCÄ£¿é - * »ùÖ·: 0x10002000 + * RTCæ¨¡å— + * 基å€: 0x10002000 */ -#define RTC_STA_YMD (RTC_BASE+0X000) /* Äê, ÔÂ, ÈÕ¼ÆÊý¼Ä´æÆ÷ */ -#define RTC_STA_HMS (RTC_BASE+0X004) /* Сʱ, ·ÖÖÓ, Ãë¼Ä´æÆ÷ */ -#define RTC_ALARM_ALL (RTC_BASE+0X008) /* ¶¨Ê±ÔÂ, ÈÕ, ʱ, ·Ö¼Ä´æÆ÷ */ -#define RTC_CTR (RTC_BASE+0X00C) /* ¿ØÖƼĴæÆ÷ */ -#define RTC_INT_EN (RTC_BASE+0X010) /* ÖжÏʹÄܼĴæÆ÷ */ -#define RTC_INT_STS (RTC_BASE+0X014) /* ÖжÏ״̬¼Ä´æÆ÷ */ -#define RTC_SAMP (RTC_BASE+0X018) /* ²ÉÑùÖÜÆڼĴæÆ÷ */ -#define RTC_WD_CNT (RTC_BASE+0X01C) /* Watch-Dog¼ÆÊýÖµ¼Ä´æÆ÷ */ -#define RTC_WD_SEV (RTC_BASE+0X020) /* Watch-Dog·þÎñ¼Ä´æÆ÷ */ -#define RTC_CONFIG_CHECK (RTC_BASE+0X024) /* ÅäÖÃʱ¼äÈ·ÈϼĴæÆ÷ (ÔÚÅäÖÃʱ¼ä֮ǰÏÈд0xaaaaaaaa) */ -#define RTC_KEY0 (RTC_BASE+0X02C) /* ÃÜÔ¿¼Ä´æÆ÷ */ +#define RTC_STA_YMD (RTC_BASE+0X000) /* å¹´, 月, 日计数寄存器 */ +#define RTC_STA_HMS (RTC_BASE+0X004) /* å°æ—¶, 分钟, 秒寄存器 */ +#define RTC_ALARM_ALL (RTC_BASE+0X008) /* 定时月, æ—¥, æ—¶, 分寄存器 */ +#define RTC_CTR (RTC_BASE+0X00C) /* 控制寄存器 */ +#define RTC_INT_EN (RTC_BASE+0X010) /* 中断使能寄存器 */ +#define RTC_INT_STS (RTC_BASE+0X014) /* 中断状æ€å¯„存器 */ +#define RTC_SAMP (RTC_BASE+0X018) /* 采样周期寄存器 */ +#define RTC_WD_CNT (RTC_BASE+0X01C) /* Watch-Dog计数值寄存器 */ +#define RTC_WD_SEV (RTC_BASE+0X020) /* Watch-DogæœåŠ¡å¯„存器 */ +#define RTC_CONFIG_CHECK (RTC_BASE+0X024) /* é…置时间确认寄存器 (在é…置时间之å‰å…ˆå†™0xaaaaaaaa) */ +#define RTC_KEY0 (RTC_BASE+0X02C) /* 密钥寄存器 */ /* - * TIMERÄ£¿é - * »ùÖ·: 0x10003000 + * TIMERæ¨¡å— + * 基å€: 0x10003000 */ -#define TIMER_T1LCR (TIMER_BASE+0X000) /* ͨµÀ1¼ÓÔؼÆÊý¼Ä´æÆ÷ */ -#define TIMER_T1CCR (TIMER_BASE+0X004) /* ͨµÀ1µ±Ç°¼ÆÊýÖµ¼Ä´æÆ÷ */ -#define TIMER_T1CR (TIMER_BASE+0X008) /* ͨµÀ1¿ØÖƼĴæÆ÷ */ -#define TIMER_T1ISCR (TIMER_BASE+0X00C) /* ͨµÀ1ÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define TIMER_T1IMSR (TIMER_BASE+0X010) /* ͨµÀ1ÖжÏÆÁ±Î״̬¼Ä´æÆ÷ */ -#define TIMER_T2LCR (TIMER_BASE+0X020) /* ͨµÀ2¼ÓÔؼÆÊý¼Ä´æÆ÷ */ -#define TIMER_T2CCR (TIMER_BASE+0X024) /* ͨµÀ2µ±Ç°¼ÆÊýÖµ¼Ä´æÆ÷ */ -#define TIMER_T2CR (TIMER_BASE+0X028) /* ͨµÀ2¿ØÖƼĴæÆ÷ */ -#define TIMER_T2ISCR (TIMER_BASE+0X02C) /* ͨµÀ2ÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define TIMER_T2IMSR (TIMER_BASE+0X030) /* ͨµÀ2ÖжÏÆÁ±Î״̬¼Ä´æÆ÷ */ -#define TIMER_T3LCR (TIMER_BASE+0X040) /* ͨµÀ3¼ÓÔؼÆÊý¼Ä´æÆ÷ */ -#define TIMER_T3CCR (TIMER_BASE+0X044) /* ͨµÀ3µ±Ç°¼ÆÊýÖµ¼Ä´æÆ÷ */ -#define TIMER_T3CR (TIMER_BASE+0X048) /* ͨµÀ3¿ØÖƼĴæÆ÷ */ -#define TIMER_T3ISCR (TIMER_BASE+0X04C) /* ͨµÀ3ÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define TIMER_T3IMSR (TIMER_BASE+0X050) /* ͨµÀ3ÖжÏÆÁ±Î״̬¼Ä´æÆ÷ */ -#define TIMER_T3CAPR (TIMER_BASE+0X054) /* ͨµÀ3²¶»ñ¼Ä´æÆ÷ */ -#define TIMER_T4LCR (TIMER_BASE+0X060) /* ͨµÀ4¼ÓÔؼÆÊý¼Ä´æÆ÷ */ -#define TIMER_T4CCR (TIMER_BASE+0X064) /* ͨµÀ4µ±Ç°¼ÆÊýÖµ¼Ä´æÆ÷ */ -#define TIMER_T4CR (TIMER_BASE+0X068) /* ͨµÀ4¿ØÖƼĴæÆ÷ */ -#define TIMER_T4ISCR (TIMER_BASE+0X06C) /* ͨµÀ4ÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define TIMER_T4IMSR (TIMER_BASE+0X070) /* ͨµÀ4ÖжÏÆÁ±Î״̬¼Ä´æÆ÷ */ -#define TIMER_T4CAPR (TIMER_BASE+0X074) /* ͨµÀ4²¶»ñ¼Ä´æÆ÷ */ -#define TIMER_T5LCR (TIMER_BASE+0X080) /* ͨµÀ5¼ÓÔؼÆÊý¼Ä´æÆ÷ */ -#define TIMER_T5CCR (TIMER_BASE+0X084) /* ͨµÀ5µ±Ç°¼ÆÊýÖµ¼Ä´æÆ÷ */ -#define TIMER_T5CR (TIMER_BASE+0X088) /* ͨµÀ5¿ØÖƼĴæÆ÷ */ -#define TIMER_T5ISCR (TIMER_BASE+0X08C) /* ͨµÀ5ÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define TIMER_T5IMSR (TIMER_BASE+0X090) /* ͨµÀ5ÖжÏÆÁ±Î״̬¼Ä´æÆ÷ */ -#define TIMER_T5CAPR (TIMER_BASE+0X094) /* ͨµÀ5²¶»ñ¼Ä´æÆ÷ */ -#define TIMER_T6LCR (TIMER_BASE+0X0A0) /* ͨµÀ6¼ÓÔؼÆÊý¼Ä´æÆ÷ */ -#define TIMER_T6CCR (TIMER_BASE+0X0A4) /* ͨµÀ6µ±Ç°¼ÆÊýÖµ¼Ä´æÆ÷ */ -#define TIMER_T6CR (TIMER_BASE+0X0A8) /* ͨµÀ6¿ØÖƼĴæÆ÷ */ -#define TIMER_T6ISCR (TIMER_BASE+0X0AC) /* ͨµÀ6ÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define TIMER_T6IMSR (TIMER_BASE+0X0B0) /* ͨµÀ6ÖжÏÆÁ±Î״̬¼Ä´æÆ÷ */ -#define TIMER_T6CAPR (TIMER_BASE+0X0B4) /* ͨµÀ6²¶»ñ¼Ä´æÆ÷ */ -#define TIMER_T7LCR (TIMER_BASE+0X0C0) /* ͨµÀ7¼ÓÔؼÆÊý¼Ä´æÆ÷ */ -#define TIMER_T7CCR (TIMER_BASE+0X0C4) /* ͨµÀ7µ±Ç°¼ÆÊýÖµ¼Ä´æÆ÷ */ -#define TIMER_T7CR (TIMER_BASE+0X0C8) /* ͨµÀ7¿ØÖƼĴæÆ÷ */ -#define TIMER_T7ISCR (TIMER_BASE+0X0CC) /* ͨµÀ7ÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define TIMER_T7IMSR (TIMER_BASE+0X0D0) /* ͨµÀ7ÖжÏÆÁ±Î״̬¼Ä´æÆ÷ */ -#define TIMER_T8LCR (TIMER_BASE+0X0E0) /* ͨµÀ8¼ÓÔؼÆÊý¼Ä´æÆ÷ */ -#define TIMER_T8CCR (TIMER_BASE+0X0E4) /* ͨµÀ8µ±Ç°¼ÆÊýÖµ¼Ä´æÆ÷ */ -#define TIMER_T8CR (TIMER_BASE+0X0E8) /* ͨµÀ8¿ØÖƼĴæÆ÷ */ -#define TIMER_T8ISCR (TIMER_BASE+0X0EC) /* ͨµÀ8ÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define TIMER_T8IMSR (TIMER_BASE+0X0F0) /* ͨµÀ8ÖжÏÆÁ±Î״̬¼Ä´æÆ÷ */ -#define TIMER_T9LCR (TIMER_BASE+0X100) /* ͨµÀ9¼ÓÔؼÆÊý¼Ä´æÆ÷ */ -#define TIMER_T9CCR (TIMER_BASE+0X104) /* ͨµÀ9µ±Ç°¼ÆÊýÖµ¼Ä´æÆ÷ */ -#define TIMER_T9CR (TIMER_BASE+0X108) /* ͨµÀ9¿ØÖƼĴæÆ÷ */ -#define TIMER_T9ISCR (TIMER_BASE+0X10C) /* ͨµÀ9ÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define TIMER_T9IMSR (TIMER_BASE+0X110) /* ͨµÀ9ÖжÏÆÁ±Î״̬¼Ä´æÆ÷ */ -#define TIMER_T10LCR (TIMER_BASE+0X120) /* ͨµÀ10¼ÓÔؼÆÊý¼Ä´æÆ÷ */ -#define TIMER_T10CCR (TIMER_BASE+0X124) /* ͨµÀ10µ±Ç°¼ÆÊýÖµ¼Ä´æÆ÷ */ -#define TIMER_T10CR (TIMER_BASE+0X128) /* ͨµÀ10¿ØÖƼĴæÆ÷ */ -#define TIMER_T10ISCR (TIMER_BASE+0X12C) /* ͨµÀ10ÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define TIMER_T10IMSR (TIMER_BASE+0X130) /* ͨµÀ10ÖжÏÆÁ±Î״̬¼Ä´æÆ÷ */ -#define TIMER_TIMSR (TIMER_BASE+0X140) /* TIMERÖжÏÆÁ±Î״̬¼Ä´æÆ÷ */ -#define TIMER_TISCR (TIMER_BASE+0X144) /* TIMERÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define TIMER_TISR (TIMER_BASE+0X148) /* TIMERÖжÏ״̬¼Ä´æÆ÷ */ +#define TIMER_T1LCR (TIMER_BASE+0X000) /* 通é“1加载计数寄存器 */ +#define TIMER_T1CCR (TIMER_BASE+0X004) /* 通é“1当å‰è®¡æ•°å€¼å¯„存器 */ +#define TIMER_T1CR (TIMER_BASE+0X008) /* 通é“1控制寄存器 */ +#define TIMER_T1ISCR (TIMER_BASE+0X00C) /* 通é“1中断状æ€æ¸…除寄存器 */ +#define TIMER_T1IMSR (TIMER_BASE+0X010) /* 通é“1中断å±è”½çŠ¶æ€å¯„存器 */ +#define TIMER_T2LCR (TIMER_BASE+0X020) /* 通é“2加载计数寄存器 */ +#define TIMER_T2CCR (TIMER_BASE+0X024) /* 通é“2当å‰è®¡æ•°å€¼å¯„存器 */ +#define TIMER_T2CR (TIMER_BASE+0X028) /* 通é“2控制寄存器 */ +#define TIMER_T2ISCR (TIMER_BASE+0X02C) /* 通é“2中断状æ€æ¸…除寄存器 */ +#define TIMER_T2IMSR (TIMER_BASE+0X030) /* 通é“2中断å±è”½çŠ¶æ€å¯„存器 */ +#define TIMER_T3LCR (TIMER_BASE+0X040) /* 通é“3加载计数寄存器 */ +#define TIMER_T3CCR (TIMER_BASE+0X044) /* 通é“3当å‰è®¡æ•°å€¼å¯„存器 */ +#define TIMER_T3CR (TIMER_BASE+0X048) /* 通é“3控制寄存器 */ +#define TIMER_T3ISCR (TIMER_BASE+0X04C) /* 通é“3中断状æ€æ¸…除寄存器 */ +#define TIMER_T3IMSR (TIMER_BASE+0X050) /* 通é“3中断å±è”½çŠ¶æ€å¯„存器 */ +#define TIMER_T3CAPR (TIMER_BASE+0X054) /* 通é“3æ•èŽ·å¯„存器 */ +#define TIMER_T4LCR (TIMER_BASE+0X060) /* 通é“4加载计数寄存器 */ +#define TIMER_T4CCR (TIMER_BASE+0X064) /* 通é“4当å‰è®¡æ•°å€¼å¯„存器 */ +#define TIMER_T4CR (TIMER_BASE+0X068) /* 通é“4控制寄存器 */ +#define TIMER_T4ISCR (TIMER_BASE+0X06C) /* 通é“4中断状æ€æ¸…除寄存器 */ +#define TIMER_T4IMSR (TIMER_BASE+0X070) /* 通é“4中断å±è”½çŠ¶æ€å¯„存器 */ +#define TIMER_T4CAPR (TIMER_BASE+0X074) /* 通é“4æ•èŽ·å¯„存器 */ +#define TIMER_T5LCR (TIMER_BASE+0X080) /* 通é“5加载计数寄存器 */ +#define TIMER_T5CCR (TIMER_BASE+0X084) /* 通é“5当å‰è®¡æ•°å€¼å¯„存器 */ +#define TIMER_T5CR (TIMER_BASE+0X088) /* 通é“5控制寄存器 */ +#define TIMER_T5ISCR (TIMER_BASE+0X08C) /* 通é“5中断状æ€æ¸…除寄存器 */ +#define TIMER_T5IMSR (TIMER_BASE+0X090) /* 通é“5中断å±è”½çŠ¶æ€å¯„存器 */ +#define TIMER_T5CAPR (TIMER_BASE+0X094) /* 通é“5æ•èŽ·å¯„存器 */ +#define TIMER_T6LCR (TIMER_BASE+0X0A0) /* 通é“6加载计数寄存器 */ +#define TIMER_T6CCR (TIMER_BASE+0X0A4) /* 通é“6当å‰è®¡æ•°å€¼å¯„存器 */ +#define TIMER_T6CR (TIMER_BASE+0X0A8) /* 通é“6控制寄存器 */ +#define TIMER_T6ISCR (TIMER_BASE+0X0AC) /* 通é“6中断状æ€æ¸…除寄存器 */ +#define TIMER_T6IMSR (TIMER_BASE+0X0B0) /* 通é“6中断å±è”½çŠ¶æ€å¯„存器 */ +#define TIMER_T6CAPR (TIMER_BASE+0X0B4) /* 通é“6æ•èŽ·å¯„存器 */ +#define TIMER_T7LCR (TIMER_BASE+0X0C0) /* 通é“7加载计数寄存器 */ +#define TIMER_T7CCR (TIMER_BASE+0X0C4) /* 通é“7当å‰è®¡æ•°å€¼å¯„存器 */ +#define TIMER_T7CR (TIMER_BASE+0X0C8) /* 通é“7控制寄存器 */ +#define TIMER_T7ISCR (TIMER_BASE+0X0CC) /* 通é“7中断状æ€æ¸…除寄存器 */ +#define TIMER_T7IMSR (TIMER_BASE+0X0D0) /* 通é“7中断å±è”½çŠ¶æ€å¯„存器 */ +#define TIMER_T8LCR (TIMER_BASE+0X0E0) /* 通é“8加载计数寄存器 */ +#define TIMER_T8CCR (TIMER_BASE+0X0E4) /* 通é“8当å‰è®¡æ•°å€¼å¯„存器 */ +#define TIMER_T8CR (TIMER_BASE+0X0E8) /* 通é“8控制寄存器 */ +#define TIMER_T8ISCR (TIMER_BASE+0X0EC) /* 通é“8中断状æ€æ¸…除寄存器 */ +#define TIMER_T8IMSR (TIMER_BASE+0X0F0) /* 通é“8中断å±è”½çŠ¶æ€å¯„存器 */ +#define TIMER_T9LCR (TIMER_BASE+0X100) /* 通é“9加载计数寄存器 */ +#define TIMER_T9CCR (TIMER_BASE+0X104) /* 通é“9当å‰è®¡æ•°å€¼å¯„存器 */ +#define TIMER_T9CR (TIMER_BASE+0X108) /* 通é“9控制寄存器 */ +#define TIMER_T9ISCR (TIMER_BASE+0X10C) /* 通é“9中断状æ€æ¸…除寄存器 */ +#define TIMER_T9IMSR (TIMER_BASE+0X110) /* 通é“9中断å±è”½çŠ¶æ€å¯„存器 */ +#define TIMER_T10LCR (TIMER_BASE+0X120) /* 通é“10加载计数寄存器 */ +#define TIMER_T10CCR (TIMER_BASE+0X124) /* 通é“10当å‰è®¡æ•°å€¼å¯„存器 */ +#define TIMER_T10CR (TIMER_BASE+0X128) /* 通é“10控制寄存器 */ +#define TIMER_T10ISCR (TIMER_BASE+0X12C) /* 通é“10中断状æ€æ¸…除寄存器 */ +#define TIMER_T10IMSR (TIMER_BASE+0X130) /* 通é“10中断å±è”½çŠ¶æ€å¯„存器 */ +#define TIMER_TIMSR (TIMER_BASE+0X140) /* TIMER中断å±è”½çŠ¶æ€å¯„存器 */ +#define TIMER_TISCR (TIMER_BASE+0X144) /* TIMER中断状æ€æ¸…除寄存器 */ +#define TIMER_TISR (TIMER_BASE+0X148) /* TIMER中断状æ€å¯„存器 */ /* - * PWMÄ£¿é - * »ùÖ·: 0x10004000 + * PWMæ¨¡å— + * 基å€: 0x10004000 */ -#define PWM0_CTRL (PWM_BASE+0X000) /* PWM0¿ØÖƼĴæÆ÷ */ -#define PWM0_DIV (PWM_BASE+0X004) /* PWM0·ÖƵ¼Ä´æÆ÷ */ -#define PWM0_PERIOD (PWM_BASE+0X008) /* PWM0ÖÜÆڼĴæÆ÷ */ -#define PWM0_DATA (PWM_BASE+0X00C) /* PWM0Êý¾Ý¼Ä´æÆ÷ */ -#define PWM0_CNT (PWM_BASE+0X010) /* PWM0¼ÆÊý¼Ä´æÆ÷ */ -#define PWM0_STATUS (PWM_BASE+0X014) /* PWM0״̬¼Ä´æÆ÷ */ -#define PWM1_CTRL (PWM_BASE+0X020) /* PWM1¿ØÖƼĴæÆ÷ */ -#define PWM1_DIV (PWM_BASE+0X024) /* PWM1·ÖƵ¼Ä´æÆ÷ */ -#define PWM1_PERIOD (PWM_BASE+0X028) /* PWM1ÖÜÆڼĴæÆ÷ */ -#define PWM1_DATA (PWM_BASE+0X02C) /* PWM1Êý¾Ý¼Ä´æÆ÷ */ -#define PWM1_CNT (PWM_BASE+0X030) /* PWM1¼ÆÊý¼Ä´æÆ÷ */ -#define PWM1_STATUS (PWM_BASE+0X034) /* PWM1״̬¼Ä´æÆ÷ */ -#define PWM2_CTRL (PWM_BASE+0X040) /* PWM2¿ØÖƼĴæÆ÷ */ -#define PWM2_DIV (PWM_BASE+0X044) /* PWM2·ÖƵ¼Ä´æÆ÷ */ -#define PWM2_PERIOD (PWM_BASE+0X048) /* PWM2ÖÜÆڼĴæÆ÷ */ -#define PWM2_DATA (PWM_BASE+0X04C) /* PWM2Êý¾Ý¼Ä´æÆ÷ */ -#define PWM2_CNT (PWM_BASE+0X050) /* PWM2¼ÆÊý¼Ä´æÆ÷ */ -#define PWM2_STATUS (PWM_BASE+0X054) /* PWM2״̬¼Ä´æÆ÷ */ -#define PWM3_CTRL (PWM_BASE+0X060) /* PWM3¿ØÖƼĴæÆ÷ */ -#define PWM3_DIV (PWM_BASE+0X064) /* PWM3·ÖƵ¼Ä´æÆ÷ */ -#define PWM3_PERIOD (PWM_BASE+0X068) /* PWM3ÖÜÆڼĴæÆ÷ */ -#define PWM3_DATA (PWM_BASE+0X06C) /* PWM3Êý¾Ý¼Ä´æÆ÷ */ -#define PWM3_CNT (PWM_BASE+0X070) /* PWM3¼ÆÊý¼Ä´æÆ÷ */ -#define PWM3_STATUS (PWM_BASE+0X074) /* PWM3״̬¼Ä´æÆ÷ */ -#define PWM_INTMASK (PWM_BASE+0X080) /* PWMÖжÏÆÁ±Î¼Ä´æÆ÷ */ -#define PWM_INT (PWM_BASE+0X084) /* PWMÖжϼĴæÆ÷ */ -#define PWM_ENABLE (PWM_BASE+0X088) /* PWMʹÄܼĴæÆ÷ */ +#define PWM0_CTRL (PWM_BASE+0X000) /* PWM0控制寄存器 */ +#define PWM0_DIV (PWM_BASE+0X004) /* PWM0分频寄存器 */ +#define PWM0_PERIOD (PWM_BASE+0X008) /* PWM0周期寄存器 */ +#define PWM0_DATA (PWM_BASE+0X00C) /* PWM0æ•°æ®å¯„存器 */ +#define PWM0_CNT (PWM_BASE+0X010) /* PWM0计数寄存器 */ +#define PWM0_STATUS (PWM_BASE+0X014) /* PWM0状æ€å¯„存器 */ +#define PWM1_CTRL (PWM_BASE+0X020) /* PWM1控制寄存器 */ +#define PWM1_DIV (PWM_BASE+0X024) /* PWM1分频寄存器 */ +#define PWM1_PERIOD (PWM_BASE+0X028) /* PWM1周期寄存器 */ +#define PWM1_DATA (PWM_BASE+0X02C) /* PWM1æ•°æ®å¯„存器 */ +#define PWM1_CNT (PWM_BASE+0X030) /* PWM1计数寄存器 */ +#define PWM1_STATUS (PWM_BASE+0X034) /* PWM1状æ€å¯„存器 */ +#define PWM2_CTRL (PWM_BASE+0X040) /* PWM2控制寄存器 */ +#define PWM2_DIV (PWM_BASE+0X044) /* PWM2分频寄存器 */ +#define PWM2_PERIOD (PWM_BASE+0X048) /* PWM2周期寄存器 */ +#define PWM2_DATA (PWM_BASE+0X04C) /* PWM2æ•°æ®å¯„存器 */ +#define PWM2_CNT (PWM_BASE+0X050) /* PWM2计数寄存器 */ +#define PWM2_STATUS (PWM_BASE+0X054) /* PWM2状æ€å¯„存器 */ +#define PWM3_CTRL (PWM_BASE+0X060) /* PWM3控制寄存器 */ +#define PWM3_DIV (PWM_BASE+0X064) /* PWM3分频寄存器 */ +#define PWM3_PERIOD (PWM_BASE+0X068) /* PWM3周期寄存器 */ +#define PWM3_DATA (PWM_BASE+0X06C) /* PWM3æ•°æ®å¯„存器 */ +#define PWM3_CNT (PWM_BASE+0X070) /* PWM3计数寄存器 */ +#define PWM3_STATUS (PWM_BASE+0X074) /* PWM3状æ€å¯„存器 */ +#define PWM_INTMASK (PWM_BASE+0X080) /* PWM中断å±è”½å¯„存器 */ +#define PWM_INT (PWM_BASE+0X084) /* PWM中断寄存器 */ +#define PWM_ENABLE (PWM_BASE+0X088) /* PWM使能寄存器 */ /* - * UART0Ä£¿é - * »ùÖ·: 0x10005000 + * UART0æ¨¡å— + * 基å€: 0x10005000 */ -#define UART0_DLBL (UART0_BASE+0X000) /* ²¨ÌØÂÊÉèÖõͰËλ¼Ä´æÆ÷ */ -#define UART0_RXFIFO (UART0_BASE+0X000) /* ½ÓÊÕFIFO */ -#define UART0_TXFIFO (UART0_BASE+0X000) /* ·¢ËÍFIFO */ -#define UART0_DLBH (UART0_BASE+0X004) /* ²¨ÌØÂÊÉèÖø߰Ëλ¼Ä´æÆ÷ */ -#define UART0_IER (UART0_BASE+0X004) /* ÖжÏʹÄܼĴæÆ÷ */ -#define UART0_IIR (UART0_BASE+0X008) /* ÖжÏʶ±ð¼Ä´æÆ÷ */ -#define UART0_FCR (UART0_BASE+0X008) /* FIFO¿ØÖƼĴæÆ÷ */ -#define UART0_LCR (UART0_BASE+0X00C) /* ÐпØÖƼĴæÆ÷ */ -#define UART0_MCR (UART0_BASE+0X010) /* Modem¿ØÖƼĴæÆ÷ */ -#define UART0_LSR (UART0_BASE+0X014) /* ÐÐ״̬¼Ä´æÆ÷ */ -#define UART0_MSR (UART0_BASE+0X018) /* Modem״̬¼Ä´æÆ÷ */ +#define UART0_DLBL (UART0_BASE+0X000) /* 波特率设置低八ä½å¯„存器 */ +#define UART0_RXFIFO (UART0_BASE+0X000) /* 接收FIFO */ +#define UART0_TXFIFO (UART0_BASE+0X000) /* å‘é€FIFO */ +#define UART0_DLBH (UART0_BASE+0X004) /* 波特率设置高八ä½å¯„存器 */ +#define UART0_IER (UART0_BASE+0X004) /* 中断使能寄存器 */ +#define UART0_IIR (UART0_BASE+0X008) /* 中断识别寄存器 */ +#define UART0_FCR (UART0_BASE+0X008) /* FIFO控制寄存器 */ +#define UART0_LCR (UART0_BASE+0X00C) /* 行控制寄存器 */ +#define UART0_MCR (UART0_BASE+0X010) /* Modem控制寄存器 */ +#define UART0_LSR (UART0_BASE+0X014) /* 行状æ€å¯„存器 */ +#define UART0_MSR (UART0_BASE+0X018) /* Modem状æ€å¯„存器 */ /* - * UART1Ä£¿é - * »ùÖ·: 0x10006000 + * UART1æ¨¡å— + * 基å€: 0x10006000 */ -#define UART1_DLBL (UART1_BASE+0X000) /* ²¨ÌØÂÊÉèÖõͰËλ¼Ä´æÆ÷ */ -#define UART1_RXFIFO (UART1_BASE+0X000) /* ½ÓÊÕFIFO */ -#define UART1_TXFIFO (UART1_BASE+0X000) /* ·¢ËÍFIFO */ -#define UART1_DLBH (UART1_BASE+0X004) /* ²¨ÌØÂÊÉèÖø߰Ëλ¼Ä´æÆ÷ */ -#define UART1_IER (UART1_BASE+0X004) /* ÖжÏʹÄܼĴæÆ÷ */ -#define UART1_IIR (UART1_BASE+0X008) /* ÖжÏʶ±ð¼Ä´æÆ÷ */ -#define UART1_FCR (UART1_BASE+0X008) /* FIFO¿ØÖƼĴæÆ÷ */ -#define UART1_LCR (UART1_BASE+0X00C) /* ÐпØÖƼĴæÆ÷ */ -#define UART1_MCR (UART1_BASE+0X010) /* Modem¿ØÖƼĴæÆ÷ */ -#define UART1_LSR (UART1_BASE+0X014) /* ÐÐ״̬¼Ä´æÆ÷ */ -#define UART1_MSR (UART1_BASE+0X018) /* Modem״̬¼Ä´æÆ÷ */ +#define UART1_DLBL (UART1_BASE+0X000) /* 波特率设置低八ä½å¯„存器 */ +#define UART1_RXFIFO (UART1_BASE+0X000) /* 接收FIFO */ +#define UART1_TXFIFO (UART1_BASE+0X000) /* å‘é€FIFO */ +#define UART1_DLBH (UART1_BASE+0X004) /* 波特率设置高八ä½å¯„存器 */ +#define UART1_IER (UART1_BASE+0X004) /* 中断使能寄存器 */ +#define UART1_IIR (UART1_BASE+0X008) /* 中断识别寄存器 */ +#define UART1_FCR (UART1_BASE+0X008) /* FIFO控制寄存器 */ +#define UART1_LCR (UART1_BASE+0X00C) /* 行控制寄存器 */ +#define UART1_MCR (UART1_BASE+0X010) /* Modem控制寄存器 */ +#define UART1_LSR (UART1_BASE+0X014) /* 行状æ€å¯„存器 */ +#define UART1_MSR (UART1_BASE+0X018) /* Modem状æ€å¯„存器 */ /* - * UART2Ä£¿é - * »ùÖ·: 0x10007000 + * UART2æ¨¡å— + * 基å€: 0x10007000 */ -#define UART2_DLBL (UART2_BASE+0X000) /* ²¨ÌØÂÊÉèÖõͰËλ¼Ä´æÆ÷ */ -#define UART2_RXFIFO (UART2_BASE+0X000) /* ½ÓÊÕFIFO */ -#define UART2_TXFIFO (UART2_BASE+0X000) /* ·¢ËÍFIFO */ -#define UART2_DLBH (UART2_BASE+0X004) /* ²¨ÌØÂÊÉèÖø߰Ëλ¼Ä´æÆ÷ */ -#define UART2_IER (UART2_BASE+0X004) /* ÖжÏʹÄܼĴæÆ÷ */ -#define UART2_IIR (UART2_BASE+0X008) /* ÖжÏʶ±ð¼Ä´æÆ÷ */ -#define UART2_FCR (UART2_BASE+0X008) /* FIFO¿ØÖƼĴæÆ÷ */ -#define UART2_LCR (UART2_BASE+0X00C) /* ÐпØÖƼĴæÆ÷ */ -#define UART2_MCR (UART2_BASE+0X010) /* Modem¿ØÖƼĴæÆ÷ */ -#define UART2_LSR (UART2_BASE+0X014) /* ÐÐ״̬¼Ä´æÆ÷ */ -#define UART2_MSR (UART2_BASE+0X018) /* Modem״̬¼Ä´æÆ÷ */ +#define UART2_DLBL (UART2_BASE+0X000) /* 波特率设置低八ä½å¯„存器 */ +#define UART2_RXFIFO (UART2_BASE+0X000) /* 接收FIFO */ +#define UART2_TXFIFO (UART2_BASE+0X000) /* å‘é€FIFO */ +#define UART2_DLBH (UART2_BASE+0X004) /* 波特率设置高八ä½å¯„存器 */ +#define UART2_IER (UART2_BASE+0X004) /* 中断使能寄存器 */ +#define UART2_IIR (UART2_BASE+0X008) /* 中断识别寄存器 */ +#define UART2_FCR (UART2_BASE+0X008) /* FIFO控制寄存器 */ +#define UART2_LCR (UART2_BASE+0X00C) /* 行控制寄存器 */ +#define UART2_MCR (UART2_BASE+0X010) /* Modem控制寄存器 */ +#define UART2_LSR (UART2_BASE+0X014) /* 行状æ€å¯„存器 */ +#define UART2_MSR (UART2_BASE+0X018) /* Modem状æ€å¯„存器 */ /* - * UART3Ä£¿é - * »ùÖ·: 0x10008000 + * UART3æ¨¡å— + * 基å€: 0x10008000 */ -#define UART3_DLBL (UART3_BASE+0X000) /* ²¨ÌØÂÊÉèÖõͰËλ¼Ä´æÆ÷ */ -#define UART3_RXFIFO (UART3_BASE+0X000) /* ½ÓÊÕFIFO */ -#define UART3_TXFIFO (UART3_BASE+0X000) /* ·¢ËÍFIFO */ -#define UART3_DLBH (UART3_BASE+0X004) /* ²¨ÌØÂÊÉèÖø߰Ëλ¼Ä´æÆ÷ */ -#define UART3_IER (UART3_BASE+0X004) /* ÖжÏʹÄܼĴæÆ÷ */ -#define UART3_IIR (UART3_BASE+0X008) /* ÖжÏʶ±ð¼Ä´æÆ÷ */ -#define UART3_FCR (UART3_BASE+0X008) /* FIFO¿ØÖƼĴæÆ÷ */ -#define UART3_LCR (UART3_BASE+0X00C) /* ÐпØÖƼĴæÆ÷ */ -#define UART3_MCR (UART3_BASE+0X010) /* Modem¿ØÖƼĴæÆ÷ */ -#define UART3_LSR (UART3_BASE+0X014) /* ÐÐ״̬¼Ä´æÆ÷ */ -#define UART3_MSR (UART3_BASE+0X018) /* Modem״̬¼Ä´æÆ÷ */ +#define UART3_DLBL (UART3_BASE+0X000) /* 波特率设置低八ä½å¯„存器 */ +#define UART3_RXFIFO (UART3_BASE+0X000) /* 接收FIFO */ +#define UART3_TXFIFO (UART3_BASE+0X000) /* å‘é€FIFO */ +#define UART3_DLBH (UART3_BASE+0X004) /* 波特率设置高八ä½å¯„存器 */ +#define UART3_IER (UART3_BASE+0X004) /* 中断使能寄存器 */ +#define UART3_IIR (UART3_BASE+0X008) /* 中断识别寄存器 */ +#define UART3_FCR (UART3_BASE+0X008) /* FIFO控制寄存器 */ +#define UART3_LCR (UART3_BASE+0X00C) /* 行控制寄存器 */ +#define UART3_MCR (UART3_BASE+0X010) /* Modem控制寄存器 */ +#define UART3_LSR (UART3_BASE+0X014) /* 行状æ€å¯„存器 */ +#define UART3_MSR (UART3_BASE+0X018) /* Modem状æ€å¯„存器 */ /* - * SSIÄ£¿é - * »ùÖ·: 0x10009000 + * SSIæ¨¡å— + * 基å€: 0x10009000 */ -#define SSI_CONTROL0 (SSI_BASE+0X000) /* ¿ØÖƼĴæÆ÷0 */ -#define SSI_CONTROL1 (SSI_BASE+0X004) /* ¿ØÖƼĴæÆ÷1 */ -#define SSI_SSIENR (SSI_BASE+0X008) /* SSIʹÄܼĴæÆ÷ */ -#define SSI_MWCR (SSI_BASE+0X00C) /* Microwire¿ØÖƼĴæÆ÷ */ -#define SSI_SER (SSI_BASE+0X010) /* ´ÓÉ豸ʹÄܼĴæÆ÷ */ -#define SSI_BAUDR (SSI_BASE+0X014) /* ²¨ÌØÂÊÉèÖüĴæÆ÷ */ -#define SSI_TXFTLR (SSI_BASE+0X018) /* ·¢ËÍFIFOãÐÖµ¼Ä´æÆ÷ */ -#define SSI_RXFTLR (SSI_BASE+0X01C) /* ½ÓÊÕFIFOãÐÖµ¼Ä´æÆ÷ */ -#define SSI_TXFLR (SSI_BASE+0X020) /* ·¢ËÍFIFO״̬¼Ä´æÆ÷ */ -#define SSI_RXFLR (SSI_BASE+0X024) /* ½ÓÊÕFIFO״̬¼Ä´æÆ÷ */ -#define SSI_SR (SSI_BASE+0X028) /* ״̬¼Ä´æÆ÷ */ -#define SSI_IMR (SSI_BASE+0X02C) /* ÖжÏÆÁ±Î¼Ä´æÆ÷ */ -#define SSI_ISR (SSI_BASE+0X030) /* ÖжÏ×îÖÕ״̬¼Ä´æÆ÷ */ -#define SSI_RISR (SSI_BASE+0X034) /* ÖжÏԭʼ״̬¼Ä´æÆ÷ */ -#define SSI_TXOICR (SSI_BASE+0X038) /* ·¢ËÍFIFOÉÏÒçÖжÏÇå³ý¼Ä´æÆ÷ */ -#define SSI_RXOICR (SSI_BASE+0X03C) /* ½ÓÊÕFIFOÉÏÒçÖжÏÇå³ý¼Ä´æÆ÷ */ -#define SSI_RXUICR (SSI_BASE+0X040) /* ½ÓÊÕFIFOÏÂÒçÖжÏÇå³ý¼Ä´æÆ÷ */ -#define SSI_ICR (SSI_BASE+0X02C) /* ÖжÏÇå³ý¼Ä´æÆ÷ */ -#define SSI_DMACR (SSI_BASE+0X04C) /* DMA¿ØÖƼĴæÆ÷ */ -#define SSI_DMATDLR (SSI_BASE+0X050) /* DMA·¢ËÍ״̬¼Ä´æÆ÷ */ -#define SSI_DMARDLR (SSI_BASE+0X054) /* DMA½ÓÊÕ״̬¼Ä´æÆ÷ */ -#define SSI_DR (SSI_BASE+0X060) /* Êý¾Ý¼Ä´æÆ÷ */ +#define SSI_CONTROL0 (SSI_BASE+0X000) /* 控制寄存器0 */ +#define SSI_CONTROL1 (SSI_BASE+0X004) /* 控制寄存器1 */ +#define SSI_SSIENR (SSI_BASE+0X008) /* SSI使能寄存器 */ +#define SSI_MWCR (SSI_BASE+0X00C) /* Microwire控制寄存器 */ +#define SSI_SER (SSI_BASE+0X010) /* 从设备使能寄存器 */ +#define SSI_BAUDR (SSI_BASE+0X014) /* 波特率设置寄存器 */ +#define SSI_TXFTLR (SSI_BASE+0X018) /* å‘é€FIFO阈值寄存器 */ +#define SSI_RXFTLR (SSI_BASE+0X01C) /* 接收FIFO阈值寄存器 */ +#define SSI_TXFLR (SSI_BASE+0X020) /* å‘é€FIFO状æ€å¯„存器 */ +#define SSI_RXFLR (SSI_BASE+0X024) /* 接收FIFO状æ€å¯„存器 */ +#define SSI_SR (SSI_BASE+0X028) /* 状æ€å¯„存器 */ +#define SSI_IMR (SSI_BASE+0X02C) /* 中断å±è”½å¯„存器 */ +#define SSI_ISR (SSI_BASE+0X030) /* 中断最终状æ€å¯„存器 */ +#define SSI_RISR (SSI_BASE+0X034) /* 中断原始状æ€å¯„存器 */ +#define SSI_TXOICR (SSI_BASE+0X038) /* å‘é€FIFO上溢中断清除寄存器 */ +#define SSI_RXOICR (SSI_BASE+0X03C) /* 接收FIFO上溢中断清除寄存器 */ +#define SSI_RXUICR (SSI_BASE+0X040) /* 接收FIFO下溢中断清除寄存器 */ +#define SSI_ICR (SSI_BASE+0X02C) /* 中断清除寄存器 */ +#define SSI_DMACR (SSI_BASE+0X04C) /* DMA控制寄存器 */ +#define SSI_DMATDLR (SSI_BASE+0X050) /* DMAå‘é€çŠ¶æ€å¯„存器 */ +#define SSI_DMARDLR (SSI_BASE+0X054) /* DMA接收状æ€å¯„存器 */ +#define SSI_DR (SSI_BASE+0X060) /* æ•°æ®å¯„存器 */ /* - * I2SÄ£¿é - * »ùÖ·: 0x1000A000 + * I2Sæ¨¡å— + * 基å€: 0x1000A000 */ -#define I2S_CTRL (I2S_BASE+0X000) /* I2S¿ØÖƼĴæÆ÷ */ -#define I2S_DATA (I2S_BASE+0X004) /* I2SÊý¾Ý¼Ä´æÆ÷ */ -#define I2S_INT (I2S_BASE+0X008) /* I2SÖжϼĴæÆ÷ */ -#define I2S_STATUS (I2S_BASE+0X00C) /* I2S״̬¼Ä´æÆ÷ */ +#define I2S_CTRL (I2S_BASE+0X000) /* I2S控制寄存器 */ +#define I2S_DATA (I2S_BASE+0X004) /* I2Sæ•°æ®å¯„存器 */ +#define I2S_INT (I2S_BASE+0X008) /* I2S中断寄存器 */ +#define I2S_STATUS (I2S_BASE+0X00C) /* I2S状æ€å¯„存器 */ /* - * SDÄ£¿é - * »ùÖ·: 0x1000B000 + * SDæ¨¡å— + * 基å€: 0x1000B000 */ -#define SDC_CLOCK_CONTROL (SD_BASE+0x00) /* SDIOʱÖÓ¿ØÖƼĴæÆ÷ */ -#define SDC_SOFTWARE_RESET (SD_BASE+0X04) /* SDIOÈí¼þ¸´Î»¼Ä´æÆ÷ */ -#define SDC_ARGUMENT (SD_BASE+0X08) /* SDIOÃüÁî²ÎÊý¼Ä´æÆ÷ */ -#define SDC_COMMAND (SD_BASE+0X0C) /* SDIOÃüÁî¿ØÖƼĴæÆ÷ */ -#define SDC_BLOCK_SIZE (SD_BASE+0X10) /* SDIOÊý¾Ý¿é³¤¶È¼Ä´æÆ÷ */ -#define SDC_BLOCK_COUNT (SD_BASE+0X14) /* SDIOÊý¾Ý¿éÊýÄ¿¼Ä´æÆ÷ */ -#define SDC_TRANSFER_MODE (SD_BASE+0X18) /* SDIO´«ÊäģʽѡÔñ¼Ä´æÆ÷ */ -#define SDC_RESPONSE0 (SD_BASE+0X1c) /* SDIOÏìÓ¦¼Ä´æÆ÷0 */ -#define SDC_RESPONSE1 (SD_BASE+0X20) /* SDIOÏìÓ¦¼Ä´æÆ÷1 */ -#define SDC_RESPONSE2 (SD_BASE+0X24) /* SDIOÏìÓ¦¼Ä´æÆ÷2 */ -#define SDC_RESPONSE3 (SD_BASE+0X28) /* SDIOÏìÓ¦¼Ä´æÆ÷3 */ -#define SDC_READ_TIMEOUT_CONTROL (SD_BASE+0X2c) /* SDIO¶Á³¬Ê±¿ØÖƼĴæÆ÷ */ -#define SDC_INTERRUPT_STATUS (SD_BASE+0X30) /* SDIOÖжÏ״̬¼Ä´æÆ÷ */ -#define SDC_INTERRUPT_STATUS_MASK (SD_BASE+0X34) /* SDIOÖжÏ״̬ÆÁ±Î¼Ä´æÆ÷ */ -#define SDC_READ_BUFER_ACCESS (SD_BASE+0X38) /* SDIO½ÓÊÕFIFO */ -#define SDC_WRITE_BUFER_ACCESS (SD_BASE+0X3c) /* SDIO·¢ËÍFIFO */ +#define SDC_CLOCK_CONTROL (SD_BASE+0x00) /* SDIO时钟控制寄存器 */ +#define SDC_SOFTWARE_RESET (SD_BASE+0X04) /* SDIO软件å¤ä½å¯„存器 */ +#define SDC_ARGUMENT (SD_BASE+0X08) /* SDIO命令å‚数寄存器 */ +#define SDC_COMMAND (SD_BASE+0X0C) /* SDIO命令控制寄存器 */ +#define SDC_BLOCK_SIZE (SD_BASE+0X10) /* SDIOæ•°æ®å—长度寄存器 */ +#define SDC_BLOCK_COUNT (SD_BASE+0X14) /* SDIOæ•°æ®å—数目寄存器 */ +#define SDC_TRANSFER_MODE (SD_BASE+0X18) /* SDIO传输模å¼é€‰æ‹©å¯„存器 */ +#define SDC_RESPONSE0 (SD_BASE+0X1c) /* SDIOå“应寄存器0 */ +#define SDC_RESPONSE1 (SD_BASE+0X20) /* SDIOå“应寄存器1 */ +#define SDC_RESPONSE2 (SD_BASE+0X24) /* SDIOå“应寄存器2 */ +#define SDC_RESPONSE3 (SD_BASE+0X28) /* SDIOå“应寄存器3 */ +#define SDC_READ_TIMEOUT_CONTROL (SD_BASE+0X2c) /* SDIO读超时控制寄存器 */ +#define SDC_INTERRUPT_STATUS (SD_BASE+0X30) /* SDIO中断状æ€å¯„存器 */ +#define SDC_INTERRUPT_STATUS_MASK (SD_BASE+0X34) /* SDIO中断状æ€å±è”½å¯„存器 */ +#define SDC_READ_BUFER_ACCESS (SD_BASE+0X38) /* SDIO接收FIFO */ +#define SDC_WRITE_BUFER_ACCESS (SD_BASE+0X3c) /* SDIOå‘é€FIFO */ /* - * SMC0Ä£¿é - * »ùÖ·: 0x1000C000 + * SMC0æ¨¡å— + * 基å€: 0x1000C000 */ -#define SMC0_CTRL (SMC0_BASE+0X000) /* SMC0¿ØÖƼĴæÆ÷ */ -#define SMC0_INT (SMC0_BASE+0X004) /* SMC0ÖжϼĴæÆ÷ */ -#define SMC0_FD (SMC0_BASE+0X008) /* SMC0»ù±¾µ¥ÔªÊ±¼ä¼Ä´æÆ÷ */ -#define SMC0_CT (SMC0_BASE+0X00C) /* SMC0×Ö·û´«Êäʱ¼ä¼Ä´æÆ÷ */ -#define SMC0_BT (SMC0_BASE+0X010) /* SMC0¿é´«Êäʱ¼ä¼Ä´æÆ÷ */ +#define SMC0_CTRL (SMC0_BASE+0X000) /* SMC0控制寄存器 */ +#define SMC0_INT (SMC0_BASE+0X004) /* SMC0中断寄存器 */ +#define SMC0_FD (SMC0_BASE+0X008) /* SMC0基本å•å…ƒæ—¶é—´å¯„存器 */ +#define SMC0_CT (SMC0_BASE+0X00C) /* SMC0字符传输时间寄存器 */ +#define SMC0_BT (SMC0_BASE+0X010) /* SMC0å—传输时间寄存器 */ /* - * SMC1Ä£¿é - * »ùÖ·: 0x1000D000 + * SMC1æ¨¡å— + * 基å€: 0x1000D000 */ -#define SMC1_CTRL (SMC1_BASE+0X000) /* SMC1¿ØÖƼĴæÆ÷ */ -#define SMC1_INT (SMC1_BASE+0X004) /* SMC1ÖжϼĴæÆ÷ */ -#define SMC1_FD (SMC1_BASE+0X008) /* SMC1»ù±¾µ¥ÔªÊ±¼ä¼Ä´æÆ÷ */ -#define SMC1_CT (SMC1_BASE+0X00C) /* SMC1×Ö·û´«Êäʱ¼ä¼Ä´æÆ÷ */ -#define SMC1_BT (SMC1_BASE+0X010) /* SMC1¿é´«Êäʱ¼ä¼Ä´æÆ÷ */ +#define SMC1_CTRL (SMC1_BASE+0X000) /* SMC1控制寄存器 */ +#define SMC1_INT (SMC1_BASE+0X004) /* SMC1中断寄存器 */ +#define SMC1_FD (SMC1_BASE+0X008) /* SMC1基本å•å…ƒæ—¶é—´å¯„存器 */ +#define SMC1_CT (SMC1_BASE+0X00C) /* SMC1字符传输时间寄存器 */ +#define SMC1_BT (SMC1_BASE+0X010) /* SMC1å—传输时间寄存器 */ /* - * USBDÄ£¿é - * »ùÖ·: 0x1000E000 + * USBDæ¨¡å— + * 基å€: 0x1000E000 */ -#define USBD_PROTOCOLINTR (USBD_BASE+0X000) /* USBЭÒéÖжϼĴæÆ÷ */ -#define USBD_INTRMASK (USBD_BASE+0X004) /* USBÖжÏÆÁ±Î¼Ä´æÆ÷ */ -#define USBD_INTRCTRL (USBD_BASE+0X008) /* USBÖжÏÀàÐÍ¿ØÖƼĴæÆ÷ */ -#define USBD_EPINFO (USBD_BASE+0X00C) /* USB»î¶¯¶Ëµã״̬¼Ä´æÆ÷ */ -#define USBD_BCONFIGURATIONVALUE (USBD_BASE+0X010) /* SET_CCONFIGURATION¼Ç¼ */ -#define USBD_BMATTRIBUTES (USBD_BASE+0X014) /* µ±Ç°ÅäÖÃÊôÐԼĴæÆ÷ */ -#define USBD_DEVSPEED (USBD_BASE+0X018) /* µ±Ç°É豸¹¤×÷ËٶȼĴæÆ÷ */ -#define USBD_FRAMENUMBER (USBD_BASE+0X01C) /* ¼Ç¼µ±Ç°SOF°üÄÚµÄÖ¡ºÅ */ -#define USBD_EPTRANSACTIONS0 (USBD_BASE+0X020) /* ¼Ç¼Ï´ÎÒªÇóµÄ´«Êä´ÎÊý */ -#define USBD_EPTRANSACTIONS1 (USBD_BASE+0X024) /* ¼Ç¼Ï´ÎÒªÇóµÄ´«Êä´ÎÊý */ -#define USBD_APPIFUPDATE (USBD_BASE+0X028) /* ½Ó¿ÚºÅ¿ìËÙ¸üмĴæÆ÷ */ -#define USBD_CFGINTERFACE0 (USBD_BASE+0X02C) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE1 (USBD_BASE+0X030) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE2 (USBD_BASE+0X034) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE3 (USBD_BASE+0X038) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE4 (USBD_BASE+0X03C) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE5 (USBD_BASE+0X040) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE6 (USBD_BASE+0X044) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE7 (USBD_BASE+0X048) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE8 (USBD_BASE+0X04C) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE9 (USBD_BASE+0X050) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE10 (USBD_BASE+0X054) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE11 (USBD_BASE+0X058) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE12 (USBD_BASE+0X05C) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE13 (USBD_BASE+0X060) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE14 (USBD_BASE+0X064) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE15 (USBD_BASE+0X068) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE16 (USBD_BASE+0X06C) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE17 (USBD_BASE+0X070) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE18 (USBD_BASE+0X074) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE19 (USBD_BASE+0X078) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE20 (USBD_BASE+0X07C) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE21 (USBD_BASE+0X080) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE22 (USBD_BASE+0X084) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE23 (USBD_BASE+0X088) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE24 (USBD_BASE+0X08C) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE25 (USBD_BASE+0X090) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE26 (USBD_BASE+0X094) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE27 (USBD_BASE+0X098) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE28 (USBD_BASE+0X09C) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE29 (USBD_BASE+0X0A0) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE30 (USBD_BASE+0X0A4) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_CFGINTERFACE31 (USBD_BASE+0X0A8) /* ¼Ç¼½Ó¿ÚµÄÖµ */ -#define USBD_PKTPASSEDCTRL (USBD_BASE+0X0AC) /* ¼Ç¼³É¹¦½ÓÊյİüÊý */ -#define USBD_PKTDROPPEDCTRL (USBD_BASE+0X0B0) /* ¼Ç¼¶ªÊ§µÄ°üÊý */ -#define USBD_CRCERRCTRL (USBD_BASE+0X0B4) /* ¼Ç¼CRC´íÎóµÄ°üÊý */ -#define USBD_BITSTUFFERRCTRL (USBD_BASE+0X0B8) /* ¼Ç¼λÌî³ä´íÎóµÄ°üÊý */ -#define USBD_PIDERRCTRL (USBD_BASE+0X0BC) /* ¼Ç¼PID´íÎóµÄ°üÊý */ -#define USBD_FRAMINGERRCTL (USBD_BASE+0X0C0) /* ¼Ç¼ÓÐSYNCºÍEOPµÄ°üÊý */ -#define USBD_TXPKTCTRL (USBD_BASE+0X0C4) /* ¼Ç¼·¢ËÍ°üµÄÊýÁ¿ */ -#define USBD_STATCTRLOV (USBD_BASE+0X0C8) /* ¼Ç¼ͳ¼Æ¼Ä´æÆ÷Òç³öÇé¿ö */ -#define USBD_TXLENGTH (USBD_BASE+0X0CC) /* ¼Ç¼ÿ´ÎIN´«ÊäÊÂÎñ°ü³¤¶È */ -#define USBD_RXLENGTH (USBD_BASE+0X0D0) /* ¼Ç¼OUT´«ÊäÊÂÎñ°ü³¤¶È */ -#define USBD_RESUME (USBD_BASE+0X0D4) /* USB»½ÐѼĴæÆ÷ */ -#define USBD_READFLAG (USBD_BASE+0X0D8) /* ¶ÁÒ첽״̬¼Ä´æÆ÷±êÖ¾ */ -#define USBD_RECEIVETYPE (USBD_BASE+0X0DC) /* ´«Êä״̬¼Ä´æÆ÷ */ -#define USBD_APPLOCK (USBD_BASE+0X0E0) /* ËøÐźżĴæÆ÷ */ -#define USBD_EP0OUTADDR (USBD_BASE+0X100) /* ¶Ëµã0¶ËµãºÅºÍ·½Ïò */ -#define USBD_EP0OUTBMATTR (USBD_BASE+0X104) /* ¶Ëµã0ÀàÐͼĴæÆ÷ */ -#define USBD_EP0OUTMAXPKTSIZE (USBD_BASE+0X108) /* ¶Ëµã0×î´ó°ü³ß´ç¼Ä´æÆ÷ */ -#define USBD_EP0OUTIFNUM (USBD_BASE+0X10C) /* ¶Ëµã0½Ó¿ÚºÅ¼Ä´æÆ÷ */ -#define USBD_EP0OUTSTAT (USBD_BASE+0X110) /* ¶Ëµã0״̬¼Ä´æÆ÷ */ -#define USBD_EP0OUTBMREQTYPE (USBD_BASE+0X114) /* ¶Ëµã0 SETUPÊÂÎñÇëÇóÀà */ -#define USBD_EP0OUTBREQUEST (USBD_BASE+0X118) /* ¶Ëµã0 SETUPÊÂÎñÇëÇóÄÚÈÝ */ -#define USBD_EP0OUTWVALUE (USBD_BASE+0X11C) /* ¶Ëµã0 SETUPÊÂÎñÇëÇóÖµ */ -#define USBD_EP0OUTWINDEX (USBD_BASE+0X120) /* ¶Ëµã0 SETUPÊÂÎñÇëÇóË÷Òý */ -#define USBD_EP0OUTWLENGTH (USBD_BASE+0X120) /* ¶Ëµã0 SETUPÊÂÎñÇëÇó³¤¶È */ -#define USBD_EP0OUTSYNCHFRAME (USBD_BASE+0X128) /* ¶Ëµã0ͬ²½°üÖ¡ºÅ */ -#define USBD_EP1OUTADDR (USBD_BASE+0X12C) /* ¶Ëµã1Êä³ö¶ËµãºÅºÍ·½Ïò */ -#define USBD_EP1OUTBMATTR (USBD_BASE+0X130) /* ¶Ëµã1Êä³öÀàÐͼĴæÆ÷ */ -#define USBD_EP1OUTMAXPKTSIZE (USBD_BASE+0X134) /* ¶Ëµã1Êä³ö×î´ó°ü³ß´ç¼Ä´æÆ÷ */ -#define USBD_EP1OUTIFNUM (USBD_BASE+0X138) /* ¶Ëµã1Êä³ö½Ó¿ÚºÅ¼Ä´æÆ÷ */ -#define USBD_EP1OUTSTAT (USBD_BASE+0X13C) /* ¶Ëµã1Êä³ö״̬¼Ä´æÆ÷ */ -#define USBD_EP1OUTBMREQTYPE (USBD_BASE+0X140) /* ¶Ëµã1Êä³öSETUPÊÂÎñÇëÇóÀàÐÍ */ -#define USBD_EP1OUTBREQUEST (USBD_BASE+0X144) /* ¶Ëµã1Êä³öSETUPÊÂÎñÇëÇóÄÚÈÝ */ -#define USBD_EP1OUTWVALUE (USBD_BASE+0X148) /* ¶Ëµã1Êä³öSETUPÊÂÎñÇëÇóÖµ */ -#define USBD_EP1OUTWINDX (USBD_BASE+0X14C) /* ¶Ëµã1Êä³öSETUPÊÂÎñÇëÇóË÷Òý */ -#define USBD_EP1OUTWLENGH (USBD_BASE+0X150) /* ¶Ëµã1Êä³öSETUPÊÂÎñÇëÇóÓò³¤¶È */ -#define USBD_EP1OUTSYNCHFRAME (USBD_BASE+0X154) /* ¶Ëµã1Êä³öͬ²½°üÖ¡ºÅ */ -#define USBD_EP1INADDR (USBD_BASE+0X158) /* ¶Ëµã1ÊäÈë¶ËµãºÅºÍ·½Ïò */ -#define USBD_EP1INBMATTR (USBD_BASE+0X15C) /* ¶Ëµã1ÊäÈëÀàÐͼĴæÆ÷ */ -#define USBD_EP1INMAXPKTSIZE (USBD_BASE+0X160) /* ¶Ëµã1ÊäÈë×î´ó°ü³ß´ç¼Ä´æÆ÷ */ -#define USBD_EP1INIFNUM (USBD_BASE+0X164) /* ¶Ëµã1ÊäÈë½Ó¿ÚºÅ¼Ä´æÆ÷ */ -#define USBD_EP1INSTAT (USBD_BASE+0X168) /* ¶Ëµã1ÊäÈë״̬¼Ä´æÆ÷ */ -#define USBD_EP1INBMREQTYPE (USBD_BASE+0X16C) /* ¶Ëµã1ÊäÈëSETUPÊÂÎñÇëÇóÀàÐÍ */ -#define USBD_EP1INBREQUEST (USBD_BASE+0X170) /* ¶Ëµã1ÊäÈëSETUPÊÂÎñÇëÇóÄÚÈÝ */ -#define USBD_EP1INWVALUE (USBD_BASE+0X174) /* ¶Ëµã1ÊäÈëSETUPÊÂÎñÇëÇóÖµ */ -#define USBD_EP1INWINDEX (USBD_BASE+0X178) /* ¶Ëµã1ÊäÈëSETUPÊÂÎñÇëÇóË÷Òý */ -#define USBD_EP1INWLENGTH (USBD_BASE+0X17C) /* ¶Ëµã1ÊäÈëSETUPÊÂÎñÇëÇóÓò³¤¶È */ -#define USBD_EP1INSYNCHFRAME (USBD_BASE+0X180) /* ¶Ëµã1ÊäÈëͬ²½°üÖ¡ºÅ */ -#define USBD_EP2OUTADDR (USBD_BASE+0X184) /* ¶Ëµã2Êä³ö¶ËµãºÅºÍ·½Ïò */ -#define USBD_EP2OUTBMATTR (USBD_BASE+0X188) /* ¶Ëµã2Êä³öÀàÐͼĴæÆ÷ */ -#define USBD_EP2OUTMAXPKTSIZE (USBD_BASE+0X18C) /* ¶Ëµã2Êä³ö×î´ó°ü³ß´ç¼Ä´æÆ÷ */ -#define USBD_EP2OUTIFNUM (USBD_BASE+0X190) /* ¶Ëµã2Êä³ö½Ó¿ÚºÅ¼Ä´æÆ÷ */ -#define USBD_EP2OUTSTAT (USBD_BASE+0X194) /* ¶Ëµã2Êä³ö״̬¼Ä´æÆ÷ */ -#define USBD_EP2OUTBMREQTYPE (USBD_BASE+0X198) /* ¶Ëµã2Êä³öSETUPÊÂÎñÇëÇóÀàÐÍ */ -#define USBD_EP2OUTBREQUEST (USBD_BASE+0X19C) /* ¶Ëµã2Êä³öSETUPÊÂÎñÇëÇóÄÚÈÝ */ -#define USBD_EP2OUTWVALUE (USBD_BASE+0X1A0) /* ¶Ëµã2Êä³öSETUPÊÂÎñÇëÇóÖµ */ -#define USBD_EP2OUTWINDEX (USBD_BASE+0X1A4) /* ¶Ëµã2Êä³öSETUPÊÂÎñÇëÇóË÷Òý */ -#define USBD_EP2OUTWLENGTH (USBD_BASE+0X1A8) /* ¶Ëµã2Êä³öSETUPÊÂÎñÇëÇóÓò³¤¶È */ -#define USBD_EP2OUTSYNCHFRAME (USBD_BASE+0X1AC) /* ¶Ëµã2Êä³öͬ²½°üÖ¡ºÅ */ -#define USBD_EP2INADDR (USBD_BASE+0X1B0) /* ¶Ëµã2ÊäÈë¶ËµãºÅºÍ·½Ïò */ -#define USBD_EP2INBMATTR (USBD_BASE+0X1B4) /* ¶Ëµã2ÊäÈëÀàÐͼĴæÆ÷ */ -#define USBD_EP2INMAXPKTSIZE (USBD_BASE+0X1B8) /* ¶Ëµã2ÊäÈë×î´ó°ü³ß´ç¼Ä´æÆ÷ */ -#define USBD_EP2INIFNUM (USBD_BASE+0X1BC) /* ¶Ëµã2ÊäÈë½Ó¿ÚºÅ¼Ä´æÆ÷ */ -#define USBD_EP2INSTAT (USBD_BASE+0X1C0) /* ¶Ëµã2ÊäÈë״̬¼Ä´æÆ÷ */ -#define USBD_EP2INBMREQTYPE (USBD_BASE+0X1C4) /* ¶Ëµã2ÊäÈëSETUPÊÂÎñÇëÇóÀàÐÍ */ -#define USBD_EP2INBREQUEST (USBD_BASE+0X1C8) /* ¶Ëµã2ÊäÈëSETUPÊÂÎñÇëÇóÄÚÈÝ */ -#define USBD_EP2INWVALUE (USBD_BASE+0X1CC) /* ¶Ëµã2ÊäÈëSETUPÊÂÎñÇëÇóÖµ */ -#define USBD_EP2INWINDEX (USBD_BASE+0X1D0) /* ¶Ëµã2ÊäÈëSETUPÊÂÎñÇëÇóË÷Òý */ -#define USBD_EP2INWLENGTH (USBD_BASE+0X1D4) /* ¶Ëµã2ÊäÈëSETUPÊÂÎñÇëÇóÓò³¤¶È */ -#define USBD_EP2INSYNCHFRAME (USBD_BASE+0X1D8) /* ¶Ëµã2ÊäÈëͬ²½°üÖ¡ºÅ */ -#define USBD_RXFIFO (USBD_BASE+0X200) /* ½ÓÊÜFIFO */ -#define USBD_TXFIFO (USBD_BASE+0X300) /* ·¢ËÍFIFO */ +#define USBD_PROTOCOLINTR (USBD_BASE+0X000) /* USBå议中断寄存器 */ +#define USBD_INTRMASK (USBD_BASE+0X004) /* USB中断å±è”½å¯„存器 */ +#define USBD_INTRCTRL (USBD_BASE+0X008) /* USB中断类型控制寄存器 */ +#define USBD_EPINFO (USBD_BASE+0X00C) /* USB活动端点状æ€å¯„存器 */ +#define USBD_BCONFIGURATIONVALUE (USBD_BASE+0X010) /* SET_CCONFIGURATION记录 */ +#define USBD_BMATTRIBUTES (USBD_BASE+0X014) /* 当å‰é…置属性寄存器 */ +#define USBD_DEVSPEED (USBD_BASE+0X018) /* 当å‰è®¾å¤‡å·¥ä½œé€Ÿåº¦å¯„存器 */ +#define USBD_FRAMENUMBER (USBD_BASE+0X01C) /* 记录当å‰SOFåŒ…å†…çš„å¸§å· */ +#define USBD_EPTRANSACTIONS0 (USBD_BASE+0X020) /* 记录下次è¦æ±‚的传输次数 */ +#define USBD_EPTRANSACTIONS1 (USBD_BASE+0X024) /* 记录下次è¦æ±‚的传输次数 */ +#define USBD_APPIFUPDATE (USBD_BASE+0X028) /* 接å£å·å¿«é€Ÿæ›´æ–°å¯„存器 */ +#define USBD_CFGINTERFACE0 (USBD_BASE+0X02C) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE1 (USBD_BASE+0X030) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE2 (USBD_BASE+0X034) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE3 (USBD_BASE+0X038) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE4 (USBD_BASE+0X03C) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE5 (USBD_BASE+0X040) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE6 (USBD_BASE+0X044) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE7 (USBD_BASE+0X048) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE8 (USBD_BASE+0X04C) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE9 (USBD_BASE+0X050) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE10 (USBD_BASE+0X054) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE11 (USBD_BASE+0X058) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE12 (USBD_BASE+0X05C) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE13 (USBD_BASE+0X060) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE14 (USBD_BASE+0X064) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE15 (USBD_BASE+0X068) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE16 (USBD_BASE+0X06C) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE17 (USBD_BASE+0X070) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE18 (USBD_BASE+0X074) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE19 (USBD_BASE+0X078) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE20 (USBD_BASE+0X07C) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE21 (USBD_BASE+0X080) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE22 (USBD_BASE+0X084) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE23 (USBD_BASE+0X088) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE24 (USBD_BASE+0X08C) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE25 (USBD_BASE+0X090) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE26 (USBD_BASE+0X094) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE27 (USBD_BASE+0X098) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE28 (USBD_BASE+0X09C) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE29 (USBD_BASE+0X0A0) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE30 (USBD_BASE+0X0A4) /* 记录接å£çš„值 */ +#define USBD_CFGINTERFACE31 (USBD_BASE+0X0A8) /* 记录接å£çš„值 */ +#define USBD_PKTPASSEDCTRL (USBD_BASE+0X0AC) /* 记录æˆåŠŸæŽ¥æ”¶çš„包数 */ +#define USBD_PKTDROPPEDCTRL (USBD_BASE+0X0B0) /* 记录丢失的包数 */ +#define USBD_CRCERRCTRL (USBD_BASE+0X0B4) /* 记录CRC错误的包数 */ +#define USBD_BITSTUFFERRCTRL (USBD_BASE+0X0B8) /* 记录ä½å¡«å……错误的包数 */ +#define USBD_PIDERRCTRL (USBD_BASE+0X0BC) /* 记录PID错误的包数 */ +#define USBD_FRAMINGERRCTL (USBD_BASE+0X0C0) /* 记录有SYNCå’ŒEOP的包数 */ +#define USBD_TXPKTCTRL (USBD_BASE+0X0C4) /* 记录å‘é€åŒ…çš„æ•°é‡ */ +#define USBD_STATCTRLOV (USBD_BASE+0X0C8) /* 记录统计寄存器溢出情况 */ +#define USBD_TXLENGTH (USBD_BASE+0X0CC) /* 记录æ¯æ¬¡IN传输事务包长度 */ +#define USBD_RXLENGTH (USBD_BASE+0X0D0) /* 记录OUT传输事务包长度 */ +#define USBD_RESUME (USBD_BASE+0X0D4) /* USB唤醒寄存器 */ +#define USBD_READFLAG (USBD_BASE+0X0D8) /* 读异步状æ€å¯„存器标志 */ +#define USBD_RECEIVETYPE (USBD_BASE+0X0DC) /* 传输状æ€å¯„存器 */ +#define USBD_APPLOCK (USBD_BASE+0X0E0) /* é”ä¿¡å·å¯„存器 */ +#define USBD_EP0OUTADDR (USBD_BASE+0X100) /* 端点0端点å·å’Œæ–¹å‘ */ +#define USBD_EP0OUTBMATTR (USBD_BASE+0X104) /* 端点0类型寄存器 */ +#define USBD_EP0OUTMAXPKTSIZE (USBD_BASE+0X108) /* 端点0最大包尺寸寄存器 */ +#define USBD_EP0OUTIFNUM (USBD_BASE+0X10C) /* 端点0接å£å·å¯„存器 */ +#define USBD_EP0OUTSTAT (USBD_BASE+0X110) /* 端点0状æ€å¯„存器 */ +#define USBD_EP0OUTBMREQTYPE (USBD_BASE+0X114) /* 端点0 SETUP事务请求类 */ +#define USBD_EP0OUTBREQUEST (USBD_BASE+0X118) /* 端点0 SETUP事务请求内容 */ +#define USBD_EP0OUTWVALUE (USBD_BASE+0X11C) /* 端点0 SETUP事务请求值 */ +#define USBD_EP0OUTWINDEX (USBD_BASE+0X120) /* 端点0 SETUP事务请求索引 */ +#define USBD_EP0OUTWLENGTH (USBD_BASE+0X120) /* 端点0 SETUP事务请求长度 */ +#define USBD_EP0OUTSYNCHFRAME (USBD_BASE+0X128) /* 端点0åŒæ­¥åŒ…å¸§å· */ +#define USBD_EP1OUTADDR (USBD_BASE+0X12C) /* 端点1输出端点å·å’Œæ–¹å‘ */ +#define USBD_EP1OUTBMATTR (USBD_BASE+0X130) /* 端点1输出类型寄存器 */ +#define USBD_EP1OUTMAXPKTSIZE (USBD_BASE+0X134) /* 端点1输出最大包尺寸寄存器 */ +#define USBD_EP1OUTIFNUM (USBD_BASE+0X138) /* 端点1输出接å£å·å¯„存器 */ +#define USBD_EP1OUTSTAT (USBD_BASE+0X13C) /* 端点1输出状æ€å¯„存器 */ +#define USBD_EP1OUTBMREQTYPE (USBD_BASE+0X140) /* 端点1输出SETUP事务请求类型 */ +#define USBD_EP1OUTBREQUEST (USBD_BASE+0X144) /* 端点1输出SETUP事务请求内容 */ +#define USBD_EP1OUTWVALUE (USBD_BASE+0X148) /* 端点1输出SETUP事务请求值 */ +#define USBD_EP1OUTWINDX (USBD_BASE+0X14C) /* 端点1输出SETUP事务请求索引 */ +#define USBD_EP1OUTWLENGH (USBD_BASE+0X150) /* 端点1输出SETUP事务请求域长度 */ +#define USBD_EP1OUTSYNCHFRAME (USBD_BASE+0X154) /* 端点1输出åŒæ­¥åŒ…å¸§å· */ +#define USBD_EP1INADDR (USBD_BASE+0X158) /* 端点1输入端点å·å’Œæ–¹å‘ */ +#define USBD_EP1INBMATTR (USBD_BASE+0X15C) /* 端点1输入类型寄存器 */ +#define USBD_EP1INMAXPKTSIZE (USBD_BASE+0X160) /* 端点1输入最大包尺寸寄存器 */ +#define USBD_EP1INIFNUM (USBD_BASE+0X164) /* 端点1输入接å£å·å¯„存器 */ +#define USBD_EP1INSTAT (USBD_BASE+0X168) /* 端点1输入状æ€å¯„存器 */ +#define USBD_EP1INBMREQTYPE (USBD_BASE+0X16C) /* 端点1输入SETUP事务请求类型 */ +#define USBD_EP1INBREQUEST (USBD_BASE+0X170) /* 端点1输入SETUP事务请求内容 */ +#define USBD_EP1INWVALUE (USBD_BASE+0X174) /* 端点1输入SETUP事务请求值 */ +#define USBD_EP1INWINDEX (USBD_BASE+0X178) /* 端点1输入SETUP事务请求索引 */ +#define USBD_EP1INWLENGTH (USBD_BASE+0X17C) /* 端点1输入SETUP事务请求域长度 */ +#define USBD_EP1INSYNCHFRAME (USBD_BASE+0X180) /* 端点1输入åŒæ­¥åŒ…å¸§å· */ +#define USBD_EP2OUTADDR (USBD_BASE+0X184) /* 端点2输出端点å·å’Œæ–¹å‘ */ +#define USBD_EP2OUTBMATTR (USBD_BASE+0X188) /* 端点2输出类型寄存器 */ +#define USBD_EP2OUTMAXPKTSIZE (USBD_BASE+0X18C) /* 端点2输出最大包尺寸寄存器 */ +#define USBD_EP2OUTIFNUM (USBD_BASE+0X190) /* 端点2输出接å£å·å¯„存器 */ +#define USBD_EP2OUTSTAT (USBD_BASE+0X194) /* 端点2输出状æ€å¯„存器 */ +#define USBD_EP2OUTBMREQTYPE (USBD_BASE+0X198) /* 端点2输出SETUP事务请求类型 */ +#define USBD_EP2OUTBREQUEST (USBD_BASE+0X19C) /* 端点2输出SETUP事务请求内容 */ +#define USBD_EP2OUTWVALUE (USBD_BASE+0X1A0) /* 端点2输出SETUP事务请求值 */ +#define USBD_EP2OUTWINDEX (USBD_BASE+0X1A4) /* 端点2输出SETUP事务请求索引 */ +#define USBD_EP2OUTWLENGTH (USBD_BASE+0X1A8) /* 端点2输出SETUP事务请求域长度 */ +#define USBD_EP2OUTSYNCHFRAME (USBD_BASE+0X1AC) /* 端点2输出åŒæ­¥åŒ…å¸§å· */ +#define USBD_EP2INADDR (USBD_BASE+0X1B0) /* 端点2输入端点å·å’Œæ–¹å‘ */ +#define USBD_EP2INBMATTR (USBD_BASE+0X1B4) /* 端点2输入类型寄存器 */ +#define USBD_EP2INMAXPKTSIZE (USBD_BASE+0X1B8) /* 端点2输入最大包尺寸寄存器 */ +#define USBD_EP2INIFNUM (USBD_BASE+0X1BC) /* 端点2输入接å£å·å¯„存器 */ +#define USBD_EP2INSTAT (USBD_BASE+0X1C0) /* 端点2输入状æ€å¯„存器 */ +#define USBD_EP2INBMREQTYPE (USBD_BASE+0X1C4) /* 端点2输入SETUP事务请求类型 */ +#define USBD_EP2INBREQUEST (USBD_BASE+0X1C8) /* 端点2输入SETUP事务请求内容 */ +#define USBD_EP2INWVALUE (USBD_BASE+0X1CC) /* 端点2输入SETUP事务请求值 */ +#define USBD_EP2INWINDEX (USBD_BASE+0X1D0) /* 端点2输入SETUP事务请求索引 */ +#define USBD_EP2INWLENGTH (USBD_BASE+0X1D4) /* 端点2输入SETUP事务请求域长度 */ +#define USBD_EP2INSYNCHFRAME (USBD_BASE+0X1D8) /* 端点2输入åŒæ­¥åŒ…å¸§å· */ +#define USBD_RXFIFO (USBD_BASE+0X200) /* 接å—FIFO */ +#define USBD_TXFIFO (USBD_BASE+0X300) /* å‘é€FIFO */ /* - * GPIOÄ£¿é - * »ùÖ·: 0x1000F000 + * GPIOæ¨¡å— + * 基å€: 0x1000F000 */ -#define GPIO_DBCLK_DIV (GPIO_BASE+0X000) /* ȥë´Ì²ÉÓÃʱÖÓ·ÖƵ±ÈÅäÖüĴæÆ÷ */ -#define GPIO_PORTA_DIR (GPIO_BASE+0X004) /* A×é¶Ë¿ÚÊäÈëÊä³ö·½ÏòÅäÖüĴæÆ÷ */ -#define GPIO_PORTA_SEL (GPIO_BASE+0X008) /* A×é¶Ë¿ÚͨÓÃÓÃ;ѡÔñÅäÖüĴæÆ÷ */ -#define GPIO_PORTA_INCTL (GPIO_BASE+0X00C) /* A×é¶Ë¿ÚͨÓÃÓÃ;ÊäÈëʱÀàÐÍÅäÖüĴæÆ÷ */ -#define GPIO_PORTA_INTRCTL (GPIO_BASE+0X010) /* A×é¶Ë¿ÚÖжϴ¥·¢ÀàÐÍÅäÖüĴæÆ÷ */ -#define GPIO_PORTA_INTRCLR (GPIO_BASE+0X014) /* A×é¶Ë¿ÚͨÓÃÓÃ;ÖжÏÇå³ýÅäÖüĴæÆ÷ */ -#define GPIO_PORTA_DATA (GPIO_BASE+0X018) /* A×é¶Ë¿ÚͨÓÃÓÃ;Êý¾ÝÅäÖüĴæÆ÷ */ -#define GPIO_PORTB_DIR (GPIO_BASE+0X01C) /* B×é¶Ë¿ÚÊäÈëÊä³ö·½ÏòÅäÖüĴæÆ÷ */ -#define GPIO_PORTB_SEL (GPIO_BASE+0X020) /* B×é¶Ë¿ÚͨÓÃÓÃ;ѡÔñÅäÖüĴæÆ÷ */ -#define GPIO_PORTB_DATA (GPIO_BASE+0X024) /* B×é¶Ë¿ÚͨÓÃÓÃ;Êý¾ÝÅäÖüĴæÆ÷ */ -#define GPIO_PORTC_DIR (GPIO_BASE+0X028) /* C×é¶Ë¿ÚÊäÈëÊä³ö·½ÏòÅäÖüĴæÆ÷ */ -#define GPIO_PORTC_SEL (GPIO_BASE+0X02C) /* C×é¶Ë¿ÚͨÓÃÓÃ;ѡÔñÅäÖüĴæÆ÷ */ -#define GPIO_PORTC_DATA (GPIO_BASE+0X030) /* C×é¶Ë¿ÚͨÓÃÓÃ;Êý¾ÝÅäÖüĴæÆ÷ */ -#define GPIO_PORTD_DIR (GPIO_BASE+0X034) /* D×é¶Ë¿ÚÊäÈëÊä³ö·½ÏòÅäÖüĴæÆ÷ */ -#define GPIO_PORTD_SEL (GPIO_BASE+0X038) /* D×é¶Ë¿ÚͨÓÃÓÃ;ѡÔñÅäÖüĴæÆ÷ */ -#define GPIO_PORTD_SPECII (GPIO_BASE+0X03C) /* D×é¶Ë¿ÚרÓÃÓÃ;2Ñ¡ÔñÅäÖüĴæÆ÷ */ -#define GPIO_PORTD_DATA (GPIO_BASE+0X040) /* D×é¶Ë¿ÚͨÓÃÓÃ;Êý¾ÝÅäÖüĴæÆ÷ */ -#define GPIO_PORTE_DIR (GPIO_BASE+0X044) /* E×é¶Ë¿ÚÊäÈëÊä³ö·½ÏòÅäÖüĴæÆ÷ */ -#define GPIO_PORTE_SEL (GPIO_BASE+0X048) /* E×é¶Ë¿ÚͨÓÃÓÃ;ѡÔñÅäÖüĴæÆ÷ */ -#define GPIO_PORTE_DATA (GPIO_BASE+0X04C) /* E×é¶Ë¿ÚͨÓÃÓÃ;Êý¾ÝÅäÖüĴæÆ÷ */ -#define GPIO_PORTF_DIR (GPIO_BASE+0X050) /* F×é¶Ë¿ÚÊäÈëÊä³ö·½ÏòÅäÖüĴæÆ÷ */ -#define GPIO_PORTF_SEL (GPIO_BASE+0X054) /* F×é¶Ë¿ÚͨÓÃÓÃ;ѡÔñÅäÖüĴæÆ÷ */ -#define GPIO_PORTF_INCTL (GPIO_BASE+0X058) /* F×é¶Ë¿ÚͨÓÃÓÃ;ÊäÈëʱÀàÐÍÅäÖüĴæÆ÷ */ -#define GPIO_PORTF_INTRCTL (GPIO_BASE+0X05C) /* F×é¶Ë¿ÚÖжϴ¥·¢ÀàÐÍÅäÖüĴæÆ÷ */ -#define GPIO_PORTF_INTRCLR (GPIO_BASE+0X060) /* F×é¶Ë¿ÚͨÓÃÓÃ;ÖжÏÇå³ýÅäÖüĴæÆ÷ */ -#define GPIO_PORTF_DATA (GPIO_BASE+0X064) /* F×é¶Ë¿ÚͨÓÃÓÃ;Êý¾ÝÅäÖüĴæÆ÷ */ -#define GPIO_PORTG_DIR (GPIO_BASE+0X068) /* G×é¶Ë¿ÚÊäÈëÊä³ö·½ÏòÅäÖüĴæÆ÷ */ -#define GPIO_PORTG_SEL (GPIO_BASE+0X06C) /* G×é¶Ë¿ÚͨÓÃÓÃ;ѡÔñÅäÖüĴæÆ÷ */ -#define GPIO_PORTG_DATA (GPIO_BASE+0X070) /* G×é¶Ë¿ÚͨÓÃÓÃ;Êý¾ÝÅäÖüĴæÆ÷ */ -#define GPIO_PORTH_DIR (GPIO_BASE+0X07C) /* H×é¶Ë¿ÚÊäÈëÊä³ö·½ÏòÅäÖüĴæÆ÷ */ -#define GPIO_PORTH_SEL (GPIO_BASE+0X078) /* H×é¶Ë¿ÚͨÓÃÓÃ;ѡÔñÅäÖüĴæÆ÷ */ -#define GPIO_PORTH_DATA (GPIO_BASE+0X07C) /* H×é¶Ë¿ÚͨÓÃÓÃ;Êý¾ÝÅäÖüĴæÆ÷ */ -#define GPIO_PORTI_DIR (GPIO_BASE+0X080) /* I×é¶Ë¿ÚÊäÈëÊä³ö·½ÏòÅäÖüĴæÆ÷ */ -#define GPIO_PORTI_SEL (GPIO_BASE+0X084) /* I×é¶Ë¿ÚͨÓÃÓÃ;ѡÔñÅäÖüĴæÆ÷ */ -#define GPIO_PORTI_DATA (GPIO_BASE+0X088) /* I×é¶Ë¿ÚͨÓÃÓÃ;Êý¾ÝÅäÖüĴæÆ÷ */ +#define GPIO_DBCLK_DIV (GPIO_BASE+0X000) /* 去毛刺采用时钟分频比é…置寄存器 */ +#define GPIO_PORTA_DIR (GPIO_BASE+0X004) /* A组端å£è¾“入输出方å‘é…置寄存器 */ +#define GPIO_PORTA_SEL (GPIO_BASE+0X008) /* A组端å£é€šç”¨ç”¨é€”选择é…置寄存器 */ +#define GPIO_PORTA_INCTL (GPIO_BASE+0X00C) /* A组端å£é€šç”¨ç”¨é€”输入时类型é…置寄存器 */ +#define GPIO_PORTA_INTRCTL (GPIO_BASE+0X010) /* A组端å£ä¸­æ–­è§¦å‘类型é…置寄存器 */ +#define GPIO_PORTA_INTRCLR (GPIO_BASE+0X014) /* A组端å£é€šç”¨ç”¨é€”中断清除é…置寄存器 */ +#define GPIO_PORTA_DATA (GPIO_BASE+0X018) /* A组端å£é€šç”¨ç”¨é€”æ•°æ®é…置寄存器 */ +#define GPIO_PORTB_DIR (GPIO_BASE+0X01C) /* B组端å£è¾“入输出方å‘é…置寄存器 */ +#define GPIO_PORTB_SEL (GPIO_BASE+0X020) /* B组端å£é€šç”¨ç”¨é€”选择é…置寄存器 */ +#define GPIO_PORTB_DATA (GPIO_BASE+0X024) /* B组端å£é€šç”¨ç”¨é€”æ•°æ®é…置寄存器 */ +#define GPIO_PORTC_DIR (GPIO_BASE+0X028) /* C组端å£è¾“入输出方å‘é…置寄存器 */ +#define GPIO_PORTC_SEL (GPIO_BASE+0X02C) /* C组端å£é€šç”¨ç”¨é€”选择é…置寄存器 */ +#define GPIO_PORTC_DATA (GPIO_BASE+0X030) /* C组端å£é€šç”¨ç”¨é€”æ•°æ®é…置寄存器 */ +#define GPIO_PORTD_DIR (GPIO_BASE+0X034) /* D组端å£è¾“入输出方å‘é…置寄存器 */ +#define GPIO_PORTD_SEL (GPIO_BASE+0X038) /* D组端å£é€šç”¨ç”¨é€”选择é…置寄存器 */ +#define GPIO_PORTD_SPECII (GPIO_BASE+0X03C) /* D组端å£ä¸“用用途2选择é…置寄存器 */ +#define GPIO_PORTD_DATA (GPIO_BASE+0X040) /* D组端å£é€šç”¨ç”¨é€”æ•°æ®é…置寄存器 */ +#define GPIO_PORTE_DIR (GPIO_BASE+0X044) /* E组端å£è¾“入输出方å‘é…置寄存器 */ +#define GPIO_PORTE_SEL (GPIO_BASE+0X048) /* E组端å£é€šç”¨ç”¨é€”选择é…置寄存器 */ +#define GPIO_PORTE_DATA (GPIO_BASE+0X04C) /* E组端å£é€šç”¨ç”¨é€”æ•°æ®é…置寄存器 */ +#define GPIO_PORTF_DIR (GPIO_BASE+0X050) /* F组端å£è¾“入输出方å‘é…置寄存器 */ +#define GPIO_PORTF_SEL (GPIO_BASE+0X054) /* F组端å£é€šç”¨ç”¨é€”选择é…置寄存器 */ +#define GPIO_PORTF_INCTL (GPIO_BASE+0X058) /* F组端å£é€šç”¨ç”¨é€”输入时类型é…置寄存器 */ +#define GPIO_PORTF_INTRCTL (GPIO_BASE+0X05C) /* F组端å£ä¸­æ–­è§¦å‘类型é…置寄存器 */ +#define GPIO_PORTF_INTRCLR (GPIO_BASE+0X060) /* F组端å£é€šç”¨ç”¨é€”中断清除é…置寄存器 */ +#define GPIO_PORTF_DATA (GPIO_BASE+0X064) /* F组端å£é€šç”¨ç”¨é€”æ•°æ®é…置寄存器 */ +#define GPIO_PORTG_DIR (GPIO_BASE+0X068) /* G组端å£è¾“入输出方å‘é…置寄存器 */ +#define GPIO_PORTG_SEL (GPIO_BASE+0X06C) /* G组端å£é€šç”¨ç”¨é€”选择é…置寄存器 */ +#define GPIO_PORTG_DATA (GPIO_BASE+0X070) /* G组端å£é€šç”¨ç”¨é€”æ•°æ®é…置寄存器 */ +#define GPIO_PORTH_DIR (GPIO_BASE+0X07C) /* H组端å£è¾“入输出方å‘é…置寄存器 */ +#define GPIO_PORTH_SEL (GPIO_BASE+0X078) /* H组端å£é€šç”¨ç”¨é€”选择é…置寄存器 */ +#define GPIO_PORTH_DATA (GPIO_BASE+0X07C) /* H组端å£é€šç”¨ç”¨é€”æ•°æ®é…置寄存器 */ +#define GPIO_PORTI_DIR (GPIO_BASE+0X080) /* I组端å£è¾“入输出方å‘é…置寄存器 */ +#define GPIO_PORTI_SEL (GPIO_BASE+0X084) /* I组端å£é€šç”¨ç”¨é€”选择é…置寄存器 */ +#define GPIO_PORTI_DATA (GPIO_BASE+0X088) /* I组端å£é€šç”¨ç”¨é€”æ•°æ®é…置寄存器 */ /* - * EMIÄ£¿é - * »ùÖ·: 0x11000000 + * EMIæ¨¡å— + * 基å€: 0x11000000 */ -#define EMI_CSACONF (EMI_BASE+0X000) /* CSA²ÎÊýÅäÖüĴæÆ÷ */ -#define EMI_CSBCONF (EMI_BASE+0X004) /* CSB²ÎÊýÅäÖüĴæÆ÷ */ -#define EMI_CSCCONF (EMI_BASE+0X008) /* CSC²ÎÊýÅäÖüĴæÆ÷ */ -#define EMI_CSDCONF (EMI_BASE+0X00C) /* CSD²ÎÊýÅäÖüĴæÆ÷ */ -#define EMI_CSECONF (EMI_BASE+0X010) /* CSE²ÎÊýÅäÖüĴæÆ÷ */ -#define EMI_CSFCONF (EMI_BASE+0X014) /* CSF²ÎÊýÅäÖüĴæÆ÷ */ -#define EMI_SDCONF1 (EMI_BASE+0X018) /* SDRAMʱÐòÅäÖüĴæÆ÷1 */ -#define EMI_SDCONF2 (EMI_BASE+0X01C) /* SDRAMʱÐòÅäÖüĴæÆ÷2, SDRAM³õʼ»¯Óõ½µÄÅäÖÃÐÅÏ¢ */ -#define EMI_REMAPCONF (EMI_BASE+0X020) /* Ƭѡ¿Õ¼ä¼°µØÖ·Ó³ÉäREMAPÅäÖüĴæÆ÷ */ -#define EMI_NAND_ADDR1 (EMI_BASE+0X100) /* NAND FLASHµÄµØÖ·¼Ä´æÆ÷1 */ -#define EMI_NAND_COM (EMI_BASE+0X104) /* NAND FLASHµÄ¿ØÖÆ×ּĴæÆ÷ */ -#define EMI_NAND_STA (EMI_BASE+0X10C) /* NAND FLASHµÄ״̬¼Ä´æÆ÷ */ -#define EMI_ERR_ADDR1 (EMI_BASE+0X110) /* ¶Á²Ù×÷³ö´íµÄµØÖ·¼Ä´æÆ÷1 */ -#define EMI_ERR_ADDR2 (EMI_BASE+0X114) /* ¶Á²Ù×÷³ö´íµÄµØÖ·¼Ä´æÆ÷2 */ -#define EMI_NAND_CONF1 (EMI_BASE+0X118) /* NAND FLASHµÄÅäÖÃÆ÷´æÆ÷1 */ -#define EMI_NAND_INTR (EMI_BASE+0X11C) /* NAND FLASHÖжϼĴæÆ÷ */ -#define EMI_NAND_ECC (EMI_BASE+0X120) /* ECCУÑéÍê³É¼Ä´æÆ÷ */ -#define EMI_NAND_IDLE (EMI_BASE+0X124) /* NAND FLASH¿ÕÏмĴæÆ÷ */ -#define EMI_NAND_CONF2 (EMI_BASE+0X128) /* NAND FLASHµÄÅäÖÃÆ÷´æÆ÷2 */ -#define EMI_NAND_ADDR2 (EMI_BASE+0X12C) /* NAND FLASHµÄµØÖ·¼Ä´æÆ÷2 */ -#define EMI_NAND_DATA (EMI_BASE+0X200) /* NAND FLASHµÄÊý¾Ý¼Ä´æÆ÷ */ +#define EMI_CSACONF (EMI_BASE+0X000) /* CSAå‚æ•°é…置寄存器 */ +#define EMI_CSBCONF (EMI_BASE+0X004) /* CSBå‚æ•°é…置寄存器 */ +#define EMI_CSCCONF (EMI_BASE+0X008) /* CSCå‚æ•°é…置寄存器 */ +#define EMI_CSDCONF (EMI_BASE+0X00C) /* CSDå‚æ•°é…置寄存器 */ +#define EMI_CSECONF (EMI_BASE+0X010) /* CSEå‚æ•°é…置寄存器 */ +#define EMI_CSFCONF (EMI_BASE+0X014) /* CSFå‚æ•°é…置寄存器 */ +#define EMI_SDCONF1 (EMI_BASE+0X018) /* SDRAMæ—¶åºé…置寄存器1 */ +#define EMI_SDCONF2 (EMI_BASE+0X01C) /* SDRAMæ—¶åºé…置寄存器2, SDRAMåˆå§‹åŒ–用到的é…ç½®ä¿¡æ¯ */ +#define EMI_REMAPCONF (EMI_BASE+0X020) /* 片选空间åŠåœ°å€æ˜ å°„REMAPé…置寄存器 */ +#define EMI_NAND_ADDR1 (EMI_BASE+0X100) /* NAND FLASH的地å€å¯„存器1 */ +#define EMI_NAND_COM (EMI_BASE+0X104) /* NAND FLASH的控制字寄存器 */ +#define EMI_NAND_STA (EMI_BASE+0X10C) /* NAND FLASH的状æ€å¯„存器 */ +#define EMI_ERR_ADDR1 (EMI_BASE+0X110) /* 读æ“作出错的地å€å¯„存器1 */ +#define EMI_ERR_ADDR2 (EMI_BASE+0X114) /* 读æ“作出错的地å€å¯„存器2 */ +#define EMI_NAND_CONF1 (EMI_BASE+0X118) /* NAND FLASHçš„é…置器存器1 */ +#define EMI_NAND_INTR (EMI_BASE+0X11C) /* NAND FLASH中断寄存器 */ +#define EMI_NAND_ECC (EMI_BASE+0X120) /* ECC校验完æˆå¯„存器 */ +#define EMI_NAND_IDLE (EMI_BASE+0X124) /* NAND FLASH空闲寄存器 */ +#define EMI_NAND_CONF2 (EMI_BASE+0X128) /* NAND FLASHçš„é…置器存器2 */ +#define EMI_NAND_ADDR2 (EMI_BASE+0X12C) /* NAND FLASH的地å€å¯„存器2 */ +#define EMI_NAND_DATA (EMI_BASE+0X200) /* NAND FLASHçš„æ•°æ®å¯„存器 */ /* - * DMACÄ£¿é - * »ùÖ·: 0x11001000 + * DMACæ¨¡å— + * 基å€: 0x11001000 */ -#define DMAC_INTSTATUS (DMAC_BASE+0X020) /* DAMCÖжÏ״̬¼Ä´æÆ÷¡£ */ -#define DMAC_INTTCSTATUS (DMAC_BASE+0X050) /* DMAC´«ÊäÍê³ÉÖжÏ״̬¼Ä´æÆ÷ */ -#define DMAC_INTTCCLEAR (DMAC_BASE+0X060) /* DMAC´«ÊäÍê³ÉÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define DMAC_INTERRORSTATUS (DMAC_BASE+0X080) /* DMAC´«Êä´íÎóÖжÏ״̬¼Ä´æÆ÷ */ -#define DMAC_INTINTERRCLR (DMAC_BASE+0X090) /* DMAC´«Êä´íÎóÖжÏ״̬Çå³ý¼Ä´æÆ÷ */ -#define DMAC_ENBLDCHNS (DMAC_BASE+0X0B0) /* DMACͨµÀʹÄÜ״̬¼Ä´æÆ÷ */ -#define DMAC_C0SRCADDR (DMAC_BASE+0X000) /* DMACµÀ0Ô´µØÖ·¼Ä´æÆ÷ */ -#define DMAC_C0DESTADD (DMAC_BASE+0X004) /* DMACµÀ0Ä¿µÄµØÖ·¼Ä´æÆ÷ */ -#define DMAC_C0CONTROL (DMAC_BASE+0X00C) /* DMACµÀ0¿ØÖƼĴæÆ÷ */ -#define DMAC_C0CONFIGURATION (DMAC_BASE+0X010) /* DMACµÀ0ÅäÖüĴæÆ÷ */ -#define DMAC_C0DESCRIPTOR (DMAC_BASE+0X01C) /* DMACµÀ0Á´±íµØÖ·¼Ä´æÆ÷ */ -#define DMAC_C1SRCADDR (DMAC_BASE+0X100) /* DMACµÀ1Ô´µØÖ·¼Ä´æÆ÷ */ -#define DMAC_C1DESTADDR (DMAC_BASE+0X104) /* DMACµÀ1Ä¿µÄµØÖ·¼Ä´æÆ÷ */ -#define DMAC_C1CONTROL (DMAC_BASE+0X10C) /* DMACµÀ1¿ØÖƼĴæÆ÷ */ -#define DMAC_C1CONFIGURATION (DMAC_BASE+0X110) /* DMACµÀ1ÅäÖüĴæÆ÷ */ -#define DMAC_C1DESCRIPTOR (DMAC_BASE+0X114) /* DMACµÀ1Á´±íµØÖ·¼Ä´æÆ÷ */ -#define DMAC_C2SRCADDR (DMAC_BASE+0X200) /* DMACµÀ2Ô´µØÖ·¼Ä´æÆ÷ */ -#define DMAC_C2DESTADDR (DMAC_BASE+0X204) /* DMACµÀ2Ä¿µÄµØÖ·¼Ä´æÆ÷ */ -#define DMAC_C2CONTROL (DMAC_BASE+0X20C) /* DMACµÀ2¿ØÖƼĴæÆ÷ */ -#define DMAC_C2CONFIGURATION (DMAC_BASE+0X210) /* DMACµÀ2ÅäÖüĴæÆ÷ */ -#define DMAC_C2DESCRIPTOR (DMAC_BASE+0X214) /* DMACµÀ2Á´±íµØÖ·¼Ä´æÆ÷ */ -#define DMAC_C3SRCADDR (DMAC_BASE+0X300) /* DMACµÀ3Ô´µØÖ·¼Ä´æÆ÷ */ -#define DMAC_C3DESTADDR (DMAC_BASE+0X304) /* DMACµÀ3Ä¿µÄµØÖ·¼Ä´æÆ÷ */ -#define DMAC_C3CONTROL (DMAC_BASE+0X30C) /* DMACµÀ3¿ØÖƼĴæÆ÷ */ -#define DMAC_C3CONFIGURATION (DMAC_BASE+0X310) /* DMACµÀ3ÅäÖüĴæÆ÷ */ -#define DMAC_C3DESCRIPTOR (DMAC_BASE+0X314) /* DMACµÀ3Á´±íµØÖ·¼Ä´æÆ÷ */ -#define DMAC_C4SRCADDR (DMAC_BASE+0X400) /* DMACµÀ4Ô´µØÖ·¼Ä´æÆ÷ */ -#define DMAC_C4DESTADDR (DMAC_BASE+0X404) /* DMACµÀ4Ä¿µÄµØÖ·¼Ä´æÆ÷ */ -#define DMAC_C4CONTROL (DMAC_BASE+0X40C) /* DMACµÀ4¿ØÖƼĴæÆ÷ */ -#define DMAC_C4CONFIGURATION (DMAC_BASE+0X410) /* DMACµÀ4ÅäÖüĴæÆ÷ */ -#define DMAC_C4DESCRIPTOR (DMAC_BASE+0X414) /* DMACµÀ4Á´±íµØÖ·¼Ä´æÆ÷ */ -#define DMAC_C5SRCADDR (DMAC_BASE+0X500) /* DMACµÀ5Ô´µØÖ·¼Ä´æÆ÷ */ -#define DMAC_C5DESTADDR (DMAC_BASE+0X504) /* DMACµÀ5Ä¿µÄµØÖ·¼Ä´æÆ÷ */ -#define DMAC_C5CONTROL (DMAC_BASE+0X50C) /* DMACµÀ5¿ØÖƼĴæÆ÷ */ -#define DMAC_C5CONFIGURATION (DMAC_BASE+0X510) /* DMACµÀ5ÅäÖüĴæÆ÷ */ -#define DMAC_C5DESCRIPTOR (DMAC_BASE+0X514) /* DMACµÀ5Á´±íµØÖ·¼Ä´æÆ÷ */ +#define DMAC_INTSTATUS (DMAC_BASE+0X020) /* DAMC中断状æ€å¯„存器。 */ +#define DMAC_INTTCSTATUS (DMAC_BASE+0X050) /* DMAC传输完æˆä¸­æ–­çŠ¶æ€å¯„存器 */ +#define DMAC_INTTCCLEAR (DMAC_BASE+0X060) /* DMAC传输完æˆä¸­æ–­çŠ¶æ€æ¸…除寄存器 */ +#define DMAC_INTERRORSTATUS (DMAC_BASE+0X080) /* DMAC传输错误中断状æ€å¯„存器 */ +#define DMAC_INTINTERRCLR (DMAC_BASE+0X090) /* DMAC传输错误中断状æ€æ¸…除寄存器 */ +#define DMAC_ENBLDCHNS (DMAC_BASE+0X0B0) /* DMAC通é“使能状æ€å¯„存器 */ +#define DMAC_C0SRCADDR (DMAC_BASE+0X000) /* DMACé“0æºåœ°å€å¯„存器 */ +#define DMAC_C0DESTADD (DMAC_BASE+0X004) /* DMACé“0目的地å€å¯„存器 */ +#define DMAC_C0CONTROL (DMAC_BASE+0X00C) /* DMACé“0控制寄存器 */ +#define DMAC_C0CONFIGURATION (DMAC_BASE+0X010) /* DMACé“0é…置寄存器 */ +#define DMAC_C0DESCRIPTOR (DMAC_BASE+0X01C) /* DMACé“0链表地å€å¯„存器 */ +#define DMAC_C1SRCADDR (DMAC_BASE+0X100) /* DMACé“1æºåœ°å€å¯„存器 */ +#define DMAC_C1DESTADDR (DMAC_BASE+0X104) /* DMACé“1目的地å€å¯„存器 */ +#define DMAC_C1CONTROL (DMAC_BASE+0X10C) /* DMACé“1控制寄存器 */ +#define DMAC_C1CONFIGURATION (DMAC_BASE+0X110) /* DMACé“1é…置寄存器 */ +#define DMAC_C1DESCRIPTOR (DMAC_BASE+0X114) /* DMACé“1链表地å€å¯„存器 */ +#define DMAC_C2SRCADDR (DMAC_BASE+0X200) /* DMACé“2æºåœ°å€å¯„存器 */ +#define DMAC_C2DESTADDR (DMAC_BASE+0X204) /* DMACé“2目的地å€å¯„存器 */ +#define DMAC_C2CONTROL (DMAC_BASE+0X20C) /* DMACé“2控制寄存器 */ +#define DMAC_C2CONFIGURATION (DMAC_BASE+0X210) /* DMACé“2é…置寄存器 */ +#define DMAC_C2DESCRIPTOR (DMAC_BASE+0X214) /* DMACé“2链表地å€å¯„存器 */ +#define DMAC_C3SRCADDR (DMAC_BASE+0X300) /* DMACé“3æºåœ°å€å¯„存器 */ +#define DMAC_C3DESTADDR (DMAC_BASE+0X304) /* DMACé“3目的地å€å¯„存器 */ +#define DMAC_C3CONTROL (DMAC_BASE+0X30C) /* DMACé“3控制寄存器 */ +#define DMAC_C3CONFIGURATION (DMAC_BASE+0X310) /* DMACé“3é…置寄存器 */ +#define DMAC_C3DESCRIPTOR (DMAC_BASE+0X314) /* DMACé“3链表地å€å¯„存器 */ +#define DMAC_C4SRCADDR (DMAC_BASE+0X400) /* DMACé“4æºåœ°å€å¯„存器 */ +#define DMAC_C4DESTADDR (DMAC_BASE+0X404) /* DMACé“4目的地å€å¯„存器 */ +#define DMAC_C4CONTROL (DMAC_BASE+0X40C) /* DMACé“4控制寄存器 */ +#define DMAC_C4CONFIGURATION (DMAC_BASE+0X410) /* DMACé“4é…置寄存器 */ +#define DMAC_C4DESCRIPTOR (DMAC_BASE+0X414) /* DMACé“4链表地å€å¯„存器 */ +#define DMAC_C5SRCADDR (DMAC_BASE+0X500) /* DMACé“5æºåœ°å€å¯„存器 */ +#define DMAC_C5DESTADDR (DMAC_BASE+0X504) /* DMACé“5目的地å€å¯„存器 */ +#define DMAC_C5CONTROL (DMAC_BASE+0X50C) /* DMACé“5控制寄存器 */ +#define DMAC_C5CONFIGURATION (DMAC_BASE+0X510) /* DMACé“5é…置寄存器 */ +#define DMAC_C5DESCRIPTOR (DMAC_BASE+0X514) /* DMACé“5链表地å€å¯„存器 */ /* - * LCDCÄ£¿é - * »ùÖ·: 0x11002000 + * LCDCæ¨¡å— + * 基å€: 0x11002000 */ -#define LCDC_SSA (LCDC_BASE+0X000) /* ÆÁÄ»ÆðʼµØÖ·¼Ä´æÆ÷ */ -#define LCDC_SIZE (LCDC_BASE+0X004) /* ÆÁÄ»³ß´ç¼Ä´æÆ÷ */ -#define LCDC_PCR (LCDC_BASE+0X008) /* Ãæ°åÅäÖüĴæÆ÷ */ -#define LCDC_HCR (LCDC_BASE+0X00C) /* ˮƽÅäÖüĴæÆ÷ */ -#define LCDC_VCR (LCDC_BASE+0X010) /* ´¹Ö±ÅäÖüĴæÆ÷ */ -#define LCDC_PWMR (LCDC_BASE+0X014) /* PWM¶Ô±È¶È¿ØÖƼĴæÆ÷ */ -#define LCDC_LECR (LCDC_BASE+0X018) /* ʹÄÜ¿ØÖƼĴæÆ÷ */ -#define LCDC_DMACR (LCDC_BASE+0X01C) /* DMA¿ØÖƼĴæÆ÷ */ -#define LCDC_LCDISREN (LCDC_BASE+0X020) /* ÖжÏʹÄܼĴæÆ÷ */ -#define LCDC_LCDISR (LCDC_BASE+0X024) /* ÖжÏ״̬¼Ä´æÆ÷ */ -#define LCDC_LGPMR (LCDC_BASE+0X040) /* »Ò¶Èµ÷É«Ó³Éä¼Ä´æÆ÷×é (16¸ö32bit¼Ä´æÆ÷) */ +#define LCDC_SSA (LCDC_BASE+0X000) /* å±å¹•èµ·å§‹åœ°å€å¯„存器 */ +#define LCDC_SIZE (LCDC_BASE+0X004) /* å±å¹•å°ºå¯¸å¯„存器 */ +#define LCDC_PCR (LCDC_BASE+0X008) /* é¢æ¿é…置寄存器 */ +#define LCDC_HCR (LCDC_BASE+0X00C) /* æ°´å¹³é…置寄存器 */ +#define LCDC_VCR (LCDC_BASE+0X010) /* åž‚ç›´é…置寄存器 */ +#define LCDC_PWMR (LCDC_BASE+0X014) /* PWM对比度控制寄存器 */ +#define LCDC_LECR (LCDC_BASE+0X018) /* 使能控制寄存器 */ +#define LCDC_DMACR (LCDC_BASE+0X01C) /* DMA控制寄存器 */ +#define LCDC_LCDISREN (LCDC_BASE+0X020) /* 中断使能寄存器 */ +#define LCDC_LCDISR (LCDC_BASE+0X024) /* 中断状æ€å¯„存器 */ +#define LCDC_LGPMR (LCDC_BASE+0X040) /* ç°åº¦è°ƒè‰²æ˜ å°„寄存器组 (16个32bit寄存器) */ /* - * MACÄ£¿é - * »ùÖ·: 0x11003000 + * MACæ¨¡å— + * 基å€: 0x11003000 */ -#define MAC_CTRL (MAC_BASE+0X000) /* MAC¿ØÖƼĴæÆ÷ */ -#define MAC_INTSRC (MAC_BASE+0X004) /* MACÖжÏÔ´¼Ä´æÆ÷ */ -#define MAC_INTMASK (MAC_BASE+0X008) /* MACÖжÏÆÁ±Î¼Ä´æÆ÷ */ -#define MAC_IPGT (MAC_BASE+0X00C) /* Á¬ÐøÖ¡¼ä¸ô¼Ä´æÆ÷ */ -#define MAC_IPGR1 (MAC_BASE+0X010) /* µÈ´ý´°¿Ú¼Ä´æÆ÷ */ -#define MAC_IPGR2 (MAC_BASE+0X014) /* µÈ´ý´°¿Ú¼Ä´æÆ÷ */ -#define MAC_PACKETLEN (MAC_BASE+0X018) /* Ö¡³¤¶È¼Ä´æÆ÷ */ -#define MAC_COLLCONF (MAC_BASE+0X01C) /* ÅöײÖØ·¢¼Ä´æÆ÷ */ -#define MAC_TXBD_NUM (MAC_BASE+0X020) /* ·¢ËÍÃèÊö·û¼Ä´æÆ÷ */ -#define MAC_FLOWCTRL (MAC_BASE+0X024) /* Á÷¿Ø¼Ä´æÆ÷ */ -#define MAC_MII_CTRL (MAC_BASE+0X028) /* PHY¿ØÖƼĴæÆ÷ */ -#define MAC_MII_CMD (MAC_BASE+0X02C) /* PHYÃüÁî¼Ä´æÆ÷ */ -#define MAC_MII_ADDRESS (MAC_BASE+0X030) /* PHYµØÖ·¼Ä´æÆ÷ */ -#define MAC_MII_TXDATA (MAC_BASE+0X034) /* PHYдÊý¾Ý¼Ä´æÆ÷ */ -#define MAC_MII_RXDATA (MAC_BASE+0X038) /* PHY¶ÁÊý¾Ý¼Ä´æÆ÷ */ -#define MAC_MII_STATUS (MAC_BASE+0X03C) /* PHY״̬¼Ä´æÆ÷ */ -#define MAC_ADDR0 (MAC_BASE+0X040) /* MACµØÖ·¼Ä´æÆ÷ */ -#define MAC_ADDR1 (MAC_BASE+0X044) /* MACµØÖ·¼Ä´æÆ÷ */ -#define MAC_HASH0 (MAC_BASE+0X048) /* MAC HASH¼Ä´æÆ÷ */ -#define MAC_HASH1 (MAC_BASE+0X04C) /* MAC HASH¼Ä´æÆ÷ */ -#define MAC_TXPAUSE (MAC_BASE+0X050) /* MAC¿ØÖÆÖ¡¼Ä´æÆ÷ */ +#define MAC_CTRL (MAC_BASE+0X000) /* MAC控制寄存器 */ +#define MAC_INTSRC (MAC_BASE+0X004) /* MAC中断æºå¯„存器 */ +#define MAC_INTMASK (MAC_BASE+0X008) /* MAC中断å±è”½å¯„存器 */ +#define MAC_IPGT (MAC_BASE+0X00C) /* 连续帧间隔寄存器 */ +#define MAC_IPGR1 (MAC_BASE+0X010) /* 等待窗å£å¯„存器 */ +#define MAC_IPGR2 (MAC_BASE+0X014) /* 等待窗å£å¯„存器 */ +#define MAC_PACKETLEN (MAC_BASE+0X018) /* 帧长度寄存器 */ +#define MAC_COLLCONF (MAC_BASE+0X01C) /* 碰撞é‡å‘寄存器 */ +#define MAC_TXBD_NUM (MAC_BASE+0X020) /* å‘é€æ述符寄存器 */ +#define MAC_FLOWCTRL (MAC_BASE+0X024) /* æµæŽ§å¯„存器 */ +#define MAC_MII_CTRL (MAC_BASE+0X028) /* PHY控制寄存器 */ +#define MAC_MII_CMD (MAC_BASE+0X02C) /* PHY命令寄存器 */ +#define MAC_MII_ADDRESS (MAC_BASE+0X030) /* PHY地å€å¯„存器 */ +#define MAC_MII_TXDATA (MAC_BASE+0X034) /* PHY写数æ®å¯„存器 */ +#define MAC_MII_RXDATA (MAC_BASE+0X038) /* PHY读数æ®å¯„存器 */ +#define MAC_MII_STATUS (MAC_BASE+0X03C) /* PHY状æ€å¯„存器 */ +#define MAC_ADDR0 (MAC_BASE+0X040) /* MAC地å€å¯„存器 */ +#define MAC_ADDR1 (MAC_BASE+0X044) /* MAC地å€å¯„存器 */ +#define MAC_HASH0 (MAC_BASE+0X048) /* MAC HASH寄存器 */ +#define MAC_HASH1 (MAC_BASE+0X04C) /* MAC HASH寄存器 */ +#define MAC_TXPAUSE (MAC_BASE+0X050) /* MAC控制帧寄存器 */ #define MAC_TX_BD (MAC_BASE+0X400) #define MAC_RX_BD (MAC_BASE+0X600) @@ -679,7 +687,7 @@ /* ************************************** - * PMU Ä£¿éʱÖÓ + * PMU 模å—时钟 ************************************** */ @@ -740,21 +748,21 @@ /*Sereral useful macros*/ -#define set_plevel(plevel) *(RP)INTC_IPLR = plevel //ÉèÖÃÆÕͨÖжϵÄÓÅÏȼ¶ÃÅÏÞ£¬Ö»ÓÐÓÅÏȼ¶´óÓÚ´ËÖµµÄÖжϲÅÄÜͨ¹ý -#define set_int_force(intnum) *(RP)INTC_IFR = (1 << intnum) //ÖÃ1ºó£¬Èí¼þÇ¿ÖƸÃλ¶ÔÓ¦µÄÖжÏÔ´·¢³öÖжÏÐźŠ-#define enable_irq(intnum) *(RP)INTC_IER |= (1 << intnum) //ÖÃ1ºó£¬ÔÊÐíÖжÏÔ´µÄIRQ ÖжÏÐźŠ-#define disable_irq( intnum) *(RP)INTC_IER &= ~(1<< intnum) //ÖÃ0ºó£¬²»ÔÊÐíÖжÏÔ´µÄIRQ ÖжÏÐźŠ-#define mask_irq(intnum) *(RP)INTC_IMR |= (1 << intnum) //ÖÃ1ºó£¬ÆÁ±Î¶ÔÓ¦µÄIRQ ÖжÏÐźŠ-#define unmask_irq(intnum) *(RP)INTC_IMR &= ~(1 << intnum) //ÖÃ0ºó£¬Í¨¹ý¶ÔÓ¦µÄIRQ ÖжÏÐźŠ-#define mask_all_irq() *(RP)INTC_IMR = 0xFFFFFFFF //ÆÁ±Î¶ÔÓ¦µÄIRQ ÖжÏÐźŠ-#define unmask_all_irq() *(RP)INTC_IMR = 0x00000000 //ͨ¹ý¶ÔÓ¦µÄIRQ ÖжÏÐźŠ-#define enable_all_irq() *(RP)INTC_IER = 0XFFFFFFFF //ÔÊÐíÖжÏÔ´µÄIRQ ÖжÏÐźŠ-#define disable_all_irq() *(RP)INTC_IER = 0X00000000 //²»ÔÊÐíÖжÏÔ´µÄIRQ ÖжÏÐźŠ+#define set_plevel(plevel) *(RP)INTC_IPLR = plevel //设置普通中断的优先级门é™ï¼Œåªæœ‰ä¼˜å…ˆçº§å¤§äºŽæ­¤å€¼çš„中断æ‰èƒ½é€šè¿‡ +#define set_int_force(intnum) *(RP)INTC_IFR = (1 << intnum) //ç½®1åŽï¼Œè½¯ä»¶å¼ºåˆ¶è¯¥ä½å¯¹åº”的中断æºå‘å‡ºä¸­æ–­ä¿¡å· +#define enable_irq(intnum) *(RP)INTC_IER |= (1 << intnum) //ç½®1åŽï¼Œå…许中断æºçš„IRQ ä¸­æ–­ä¿¡å· +#define disable_irq( intnum) *(RP)INTC_IER &= ~(1<< intnum) //ç½®0åŽï¼Œä¸å…许中断æºçš„IRQ ä¸­æ–­ä¿¡å· +#define mask_irq(intnum) *(RP)INTC_IMR |= (1 << intnum) //ç½®1åŽï¼Œå±è”½å¯¹åº”çš„IRQ ä¸­æ–­ä¿¡å· +#define unmask_irq(intnum) *(RP)INTC_IMR &= ~(1 << intnum) //ç½®0åŽï¼Œé€šè¿‡å¯¹åº”çš„IRQ ä¸­æ–­ä¿¡å· +#define mask_all_irq() *(RP)INTC_IMR = 0xFFFFFFFF //å±è”½å¯¹åº”çš„IRQ ä¸­æ–­ä¿¡å· +#define unmask_all_irq() *(RP)INTC_IMR = 0x00000000 //通过对应的IRQ ä¸­æ–­ä¿¡å· +#define enable_all_irq() *(RP)INTC_IER = 0XFFFFFFFF //å…许中断æºçš„IRQ ä¸­æ–­ä¿¡å· +#define disable_all_irq() *(RP)INTC_IER = 0X00000000 //ä¸å…许中断æºçš„IRQ ä¸­æ–­ä¿¡å· #define InitInt() do{mask_all_irq(); enable_all_irq();}while(0) /* ************************************** - * ËùÓгÌÐòÖÐÓõ½µÄTypedef + * 所有程åºä¸­ç”¨åˆ°çš„Typedef ************************************** */ diff --git a/libcpu/arm/sep4020/serial.c b/libcpu/arm/sep4020/serial.c index 3f484ee92d..713959238a 100644 --- a/libcpu/arm/sep4020/serial.c +++ b/libcpu/arm/sep4020/serial.c @@ -1,11 +1,7 @@ /* - * File : serial.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/sep4020/serial.h b/libcpu/arm/sep4020/serial.h index f0357aacfb..69e7df248c 100644 --- a/libcpu/arm/sep4020/serial.h +++ b/libcpu/arm/sep4020/serial.h @@ -1,11 +1,7 @@ /* - * File : serial.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/sep4020/stack.c b/libcpu/arm/sep4020/stack.c index 318b435f8e..b2205c76d2 100644 --- a/libcpu/arm/sep4020/stack.c +++ b/libcpu/arm/sep4020/stack.c @@ -1,11 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/sep4020/trap.c b/libcpu/arm/sep4020/trap.c index 9c18ced698..c551b2246c 100644 --- a/libcpu/arm/sep4020/trap.c +++ b/libcpu/arm/sep4020/trap.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/zynq7000/cp15_gcc.S b/libcpu/arm/zynq7000/cp15_gcc.S index f1ed6492aa..0e3e60655c 100644 --- a/libcpu/arm/zynq7000/cp15_gcc.S +++ b/libcpu/arm/zynq7000/cp15_gcc.S @@ -1,22 +1,7 @@ /* - * File : cp15_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team - * http://www.rt-thread.org + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/zynq7000/cpu.c b/libcpu/arm/zynq7000/cpu.c index 9853effe3c..5f3a3e7b02 100644 --- a/libcpu/arm/zynq7000/cpu.c +++ b/libcpu/arm/zynq7000/cpu.c @@ -1,11 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/zynq7000/stack.c b/libcpu/arm/zynq7000/stack.c index 08dd4b4dac..b38dd160f7 100644 --- a/libcpu/arm/zynq7000/stack.c +++ b/libcpu/arm/zynq7000/stack.c @@ -1,11 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/zynq7000/start_gcc.S b/libcpu/arm/zynq7000/start_gcc.S index 41a7906b00..6904c45587 100644 --- a/libcpu/arm/zynq7000/start_gcc.S +++ b/libcpu/arm/zynq7000/start_gcc.S @@ -1,21 +1,7 @@ /* - * File : start_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/libcpu/arm/zynq7000/vector_gcc.S b/libcpu/arm/zynq7000/vector_gcc.S index 4a44a7395c..60d3c6cf1d 100644 --- a/libcpu/arm/zynq7000/vector_gcc.S +++ b/libcpu/arm/zynq7000/vector_gcc.S @@ -1,21 +1,7 @@ /* - * File : vector_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes From b5e9927b85705413a64be0f65253232b3b3c24d5 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Mon, 15 Oct 2018 01:46:07 +0800 Subject: [PATCH 11/31] [license] Change the license of FS/DFS to Apache. --- components/dfs/filesystems/devfs/devfs.c | 18 ++--------------- components/dfs/filesystems/devfs/devfs.h | 18 ++--------------- components/dfs/filesystems/elmfat/dfs_elm.c | 18 ++--------------- components/dfs/filesystems/elmfat/dfs_elm.h | 18 ++--------------- components/dfs/filesystems/jffs2/dfs_jffs2.c | 20 +++---------------- components/dfs/filesystems/jffs2/dfs_jffs2.h | 8 ++++++++ components/dfs/filesystems/nfs/dfs_nfs.c | 18 ++--------------- components/dfs/filesystems/nfs/dfs_nfs.h | 18 ++--------------- components/dfs/filesystems/nfs/mount.h | 8 ++++++++ components/dfs/filesystems/nfs/mount_clnt.c | 8 ++++++++ components/dfs/filesystems/nfs/mount_xdr.c | 8 ++++++++ components/dfs/filesystems/nfs/nfs.h | 8 ++++++++ components/dfs/filesystems/nfs/nfs_clnt.c | 8 ++++++++ components/dfs/filesystems/nfs/nfs_xdr.c | 8 ++++++++ components/dfs/filesystems/nfs/rpc/auth.h | 8 ++++++++ .../dfs/filesystems/nfs/rpc/auth_none.c | 8 ++++++++ components/dfs/filesystems/nfs/rpc/clnt.h | 8 ++++++++ .../dfs/filesystems/nfs/rpc/clnt_generic.c | 8 ++++++++ components/dfs/filesystems/nfs/rpc/clnt_udp.c | 8 ++++++++ components/dfs/filesystems/nfs/rpc/pmap.c | 8 ++++++++ components/dfs/filesystems/nfs/rpc/pmap.h | 8 ++++++++ components/dfs/filesystems/nfs/rpc/rpc.h | 8 ++++++++ components/dfs/filesystems/nfs/rpc/rpc_msg.h | 8 ++++++++ components/dfs/filesystems/nfs/rpc/rpc_prot.c | 8 ++++++++ components/dfs/filesystems/nfs/rpc/types.h | 8 ++++++++ components/dfs/filesystems/nfs/rpc/xdr.c | 8 ++++++++ components/dfs/filesystems/nfs/rpc/xdr.h | 8 ++++++++ components/dfs/filesystems/nfs/rpc/xdr_mem.c | 8 ++++++++ components/dfs/filesystems/ramfs/dfs_ramfs.c | 18 ++--------------- components/dfs/filesystems/ramfs/dfs_ramfs.h | 18 ++--------------- components/dfs/filesystems/romfs/dfs_romfs.c | 18 ++--------------- components/dfs/filesystems/romfs/dfs_romfs.h | 18 ++--------------- components/dfs/filesystems/romfs/romfs.c | 18 ++--------------- .../dfs/filesystems/skeleton/skeleton.c | 18 ++--------------- .../dfs/filesystems/skeleton/skeleton.h | 18 ++--------------- components/dfs/filesystems/uffs/dfs_uffs.c | 20 +++---------------- components/dfs/filesystems/uffs/dfs_uffs.h | 18 ++--------------- .../dfs/filesystems/uffs/uffs_rtthread.c | 8 ++++++++ 38 files changed, 210 insertions(+), 258 deletions(-) diff --git a/components/dfs/filesystems/devfs/devfs.c b/components/dfs/filesystems/devfs/devfs.c index 4694b96c85..3080312874 100644 --- a/components/dfs/filesystems/devfs/devfs.c +++ b/components/dfs/filesystems/devfs/devfs.c @@ -1,21 +1,7 @@ /* - * File : devfs.c - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/devfs/devfs.h b/components/dfs/filesystems/devfs/devfs.h index ef320b78c8..ab2134043c 100644 --- a/components/dfs/filesystems/devfs/devfs.h +++ b/components/dfs/filesystems/devfs/devfs.h @@ -1,21 +1,7 @@ /* - * File : devfs.h - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/elmfat/dfs_elm.c b/components/dfs/filesystems/elmfat/dfs_elm.c index 2aa8fb6522..290cf7c4bb 100644 --- a/components/dfs/filesystems/elmfat/dfs_elm.c +++ b/components/dfs/filesystems/elmfat/dfs_elm.c @@ -1,21 +1,7 @@ /* - * File : dfs_elm.c - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2008-2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/elmfat/dfs_elm.h b/components/dfs/filesystems/elmfat/dfs_elm.h index da8a217005..1e9f577062 100644 --- a/components/dfs/filesystems/elmfat/dfs_elm.h +++ b/components/dfs/filesystems/elmfat/dfs_elm.h @@ -1,21 +1,7 @@ /* - * File : dfs_elm.h - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2008-2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/jffs2/dfs_jffs2.c b/components/dfs/filesystems/jffs2/dfs_jffs2.c index 17e84f94c0..c082c21d73 100644 --- a/components/dfs/filesystems/jffs2/dfs_jffs2.c +++ b/components/dfs/filesystems/jffs2/dfs_jffs2.c @@ -1,21 +1,7 @@ /* - * File : dfs_jffs2.c - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2006-2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes @@ -304,7 +290,7 @@ static int dfs_jffs2_open(struct dfs_fd* file) return jffs2_result_to_dfs(result); } - /* save this pointer, it will be used when calling read()��write(), + /* save this pointer, it will be used when calling read(), write(), flush(), lessk(), and will be rt_free when calling close()*/ file->data = jffs2_file; file->pos = jffs2_file->f_offset; diff --git a/components/dfs/filesystems/jffs2/dfs_jffs2.h b/components/dfs/filesystems/jffs2/dfs_jffs2.h index 2eee076fcb..1be403a19c 100644 --- a/components/dfs/filesystems/jffs2/dfs_jffs2.h +++ b/components/dfs/filesystems/jffs2/dfs_jffs2.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __DFS_JFFS2_H__ #define __DFS_JFFS2_H__ diff --git a/components/dfs/filesystems/nfs/dfs_nfs.c b/components/dfs/filesystems/nfs/dfs_nfs.c index 1324210007..ea055b73c1 100644 --- a/components/dfs/filesystems/nfs/dfs_nfs.c +++ b/components/dfs/filesystems/nfs/dfs_nfs.c @@ -1,21 +1,7 @@ /* - * File : dfs_nfs.c - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/nfs/dfs_nfs.h b/components/dfs/filesystems/nfs/dfs_nfs.h index adc36f82d5..d607776ef1 100644 --- a/components/dfs/filesystems/nfs/dfs_nfs.h +++ b/components/dfs/filesystems/nfs/dfs_nfs.h @@ -1,21 +1,7 @@ /* - * File : dfs_nfs.h - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/nfs/mount.h b/components/dfs/filesystems/nfs/mount.h index 4ce3714f98..aac0fd6bed 100644 --- a/components/dfs/filesystems/nfs/mount.h +++ b/components/dfs/filesystems/nfs/mount.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* * Please do not edit this file. * It was generated using rpcgen. diff --git a/components/dfs/filesystems/nfs/mount_clnt.c b/components/dfs/filesystems/nfs/mount_clnt.c index 504f1e99ae..5c65e75aa5 100644 --- a/components/dfs/filesystems/nfs/mount_clnt.c +++ b/components/dfs/filesystems/nfs/mount_clnt.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* * Please do not edit this file. * It was generated using rpcgen. diff --git a/components/dfs/filesystems/nfs/mount_xdr.c b/components/dfs/filesystems/nfs/mount_xdr.c index e4d2b86f47..8e191d3017 100644 --- a/components/dfs/filesystems/nfs/mount_xdr.c +++ b/components/dfs/filesystems/nfs/mount_xdr.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* * Please do not edit this file. * It was generated using rpcgen. diff --git a/components/dfs/filesystems/nfs/nfs.h b/components/dfs/filesystems/nfs/nfs.h index 7e3e3671af..34054b0084 100644 --- a/components/dfs/filesystems/nfs/nfs.h +++ b/components/dfs/filesystems/nfs/nfs.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* * Please do not edit this file. * It was generated using rpcgen. diff --git a/components/dfs/filesystems/nfs/nfs_clnt.c b/components/dfs/filesystems/nfs/nfs_clnt.c index 913ad510a6..c17fee9e80 100644 --- a/components/dfs/filesystems/nfs/nfs_clnt.c +++ b/components/dfs/filesystems/nfs/nfs_clnt.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* * Please do not edit this file. * It was generated using rpcgen. diff --git a/components/dfs/filesystems/nfs/nfs_xdr.c b/components/dfs/filesystems/nfs/nfs_xdr.c index 72d6edc42a..4cd69ba743 100644 --- a/components/dfs/filesystems/nfs/nfs_xdr.c +++ b/components/dfs/filesystems/nfs/nfs_xdr.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* * Please do not edit this file. * It was generated using rpcgen. diff --git a/components/dfs/filesystems/nfs/rpc/auth.h b/components/dfs/filesystems/nfs/rpc/auth.h index 3351fbbf95..f7dd76c237 100644 --- a/components/dfs/filesystems/nfs/rpc/auth.h +++ b/components/dfs/filesystems/nfs/rpc/auth.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __AUTH_H__ #define __AUTH_H__ diff --git a/components/dfs/filesystems/nfs/rpc/auth_none.c b/components/dfs/filesystems/nfs/rpc/auth_none.c index 92947581d2..9f5ad05002 100644 --- a/components/dfs/filesystems/nfs/rpc/auth_none.c +++ b/components/dfs/filesystems/nfs/rpc/auth_none.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* @(#)auth_none.c 2.1 88/07/29 4.0 RPCSRC */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for diff --git a/components/dfs/filesystems/nfs/rpc/clnt.h b/components/dfs/filesystems/nfs/rpc/clnt.h index 527075ee84..e86f8be789 100644 --- a/components/dfs/filesystems/nfs/rpc/clnt.h +++ b/components/dfs/filesystems/nfs/rpc/clnt.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* @(#)clnt.h 2.1 88/07/29 4.0 RPCSRC; from 1.31 88/02/08 SMI*/ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for diff --git a/components/dfs/filesystems/nfs/rpc/clnt_generic.c b/components/dfs/filesystems/nfs/rpc/clnt_generic.c index a3de64a2f0..bd241b5835 100644 --- a/components/dfs/filesystems/nfs/rpc/clnt_generic.c +++ b/components/dfs/filesystems/nfs/rpc/clnt_generic.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* @(#)clnt_generic.c 2.2 88/08/01 4.0 RPCSRC */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for diff --git a/components/dfs/filesystems/nfs/rpc/clnt_udp.c b/components/dfs/filesystems/nfs/rpc/clnt_udp.c index a69bc0621a..6b4f7bfb13 100644 --- a/components/dfs/filesystems/nfs/rpc/clnt_udp.c +++ b/components/dfs/filesystems/nfs/rpc/clnt_udp.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* @(#)clnt_udp.c 2.2 88/08/01 4.0 RPCSRC */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for diff --git a/components/dfs/filesystems/nfs/rpc/pmap.c b/components/dfs/filesystems/nfs/rpc/pmap.c index 4f2cf50c1e..dc5a2ccb8d 100644 --- a/components/dfs/filesystems/nfs/rpc/pmap.c +++ b/components/dfs/filesystems/nfs/rpc/pmap.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include "pmap.h" #include "clnt.h" #include diff --git a/components/dfs/filesystems/nfs/rpc/pmap.h b/components/dfs/filesystems/nfs/rpc/pmap.h index aaf28a331a..8ae706c0aa 100644 --- a/components/dfs/filesystems/nfs/rpc/pmap.h +++ b/components/dfs/filesystems/nfs/rpc/pmap.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __RPC_PMAP_PROT_H__ #define __RPC_PMAP_PROT_H__ diff --git a/components/dfs/filesystems/nfs/rpc/rpc.h b/components/dfs/filesystems/nfs/rpc/rpc.h index 306939e2fe..7256d336a1 100644 --- a/components/dfs/filesystems/nfs/rpc/rpc.h +++ b/components/dfs/filesystems/nfs/rpc/rpc.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* @(#)rpc.h 2.3 88/08/10 4.0 RPCSRC; from 1.9 88/02/08 SMI */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for diff --git a/components/dfs/filesystems/nfs/rpc/rpc_msg.h b/components/dfs/filesystems/nfs/rpc/rpc_msg.h index bd32290990..a21ca1ce7d 100644 --- a/components/dfs/filesystems/nfs/rpc/rpc_msg.h +++ b/components/dfs/filesystems/nfs/rpc/rpc_msg.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* @(#)rpc_msg.h 2.1 88/07/29 4.0 RPCSRC */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for diff --git a/components/dfs/filesystems/nfs/rpc/rpc_prot.c b/components/dfs/filesystems/nfs/rpc/rpc_prot.c index 21fc1f4ea4..427d7a11e4 100644 --- a/components/dfs/filesystems/nfs/rpc/rpc_prot.c +++ b/components/dfs/filesystems/nfs/rpc/rpc_prot.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* @(#)rpc_prot.c 2.3 88/08/07 4.0 RPCSRC */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for diff --git a/components/dfs/filesystems/nfs/rpc/types.h b/components/dfs/filesystems/nfs/rpc/types.h index 310acf7f77..254fcd339c 100644 --- a/components/dfs/filesystems/nfs/rpc/types.h +++ b/components/dfs/filesystems/nfs/rpc/types.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for * unrestricted use provided that this legend is included on all tape diff --git a/components/dfs/filesystems/nfs/rpc/xdr.c b/components/dfs/filesystems/nfs/rpc/xdr.c index ec37d6beb9..a6b1b67afb 100644 --- a/components/dfs/filesystems/nfs/rpc/xdr.c +++ b/components/dfs/filesystems/nfs/rpc/xdr.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* @(#)xdr.c 2.1 88/07/29 4.0 RPCSRC */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for diff --git a/components/dfs/filesystems/nfs/rpc/xdr.h b/components/dfs/filesystems/nfs/rpc/xdr.h index e4ab884465..fe38c4d120 100644 --- a/components/dfs/filesystems/nfs/rpc/xdr.h +++ b/components/dfs/filesystems/nfs/rpc/xdr.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for * unrestricted use provided that this legend is included on all tape diff --git a/components/dfs/filesystems/nfs/rpc/xdr_mem.c b/components/dfs/filesystems/nfs/rpc/xdr_mem.c index d6baf85837..ca69ed3647 100644 --- a/components/dfs/filesystems/nfs/rpc/xdr_mem.c +++ b/components/dfs/filesystems/nfs/rpc/xdr_mem.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* @(#)xdr_mem.c 2.1 88/07/29 4.0 RPCSRC */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for diff --git a/components/dfs/filesystems/ramfs/dfs_ramfs.c b/components/dfs/filesystems/ramfs/dfs_ramfs.c index d7911a622d..e851c7ef78 100644 --- a/components/dfs/filesystems/ramfs/dfs_ramfs.c +++ b/components/dfs/filesystems/ramfs/dfs_ramfs.c @@ -1,21 +1,7 @@ /* - * File : dfs_ramfs.c - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/ramfs/dfs_ramfs.h b/components/dfs/filesystems/ramfs/dfs_ramfs.h index b568706f68..9419784db9 100644 --- a/components/dfs/filesystems/ramfs/dfs_ramfs.h +++ b/components/dfs/filesystems/ramfs/dfs_ramfs.h @@ -1,21 +1,7 @@ /* - * File : dfs_ramfs.h - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/romfs/dfs_romfs.c b/components/dfs/filesystems/romfs/dfs_romfs.c index c842601dc8..a953ac72d5 100644 --- a/components/dfs/filesystems/romfs/dfs_romfs.c +++ b/components/dfs/filesystems/romfs/dfs_romfs.c @@ -1,21 +1,7 @@ /* - * File : dfs_romfs.c - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/romfs/dfs_romfs.h b/components/dfs/filesystems/romfs/dfs_romfs.h index d0898ecd9b..74b256c8a6 100644 --- a/components/dfs/filesystems/romfs/dfs_romfs.h +++ b/components/dfs/filesystems/romfs/dfs_romfs.h @@ -1,21 +1,7 @@ /* - * File : dfs_romfs.h - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/romfs/romfs.c b/components/dfs/filesystems/romfs/romfs.c index 1bb885a57d..1ea9f21d8e 100644 --- a/components/dfs/filesystems/romfs/romfs.c +++ b/components/dfs/filesystems/romfs/romfs.c @@ -1,21 +1,7 @@ /* - * File : romfs.c - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/skeleton/skeleton.c b/components/dfs/filesystems/skeleton/skeleton.c index 0d96cbffc9..30f0d4f629 100644 --- a/components/dfs/filesystems/skeleton/skeleton.c +++ b/components/dfs/filesystems/skeleton/skeleton.c @@ -1,21 +1,7 @@ /* - * File : skeleton.c - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/skeleton/skeleton.h b/components/dfs/filesystems/skeleton/skeleton.h index 844e91e4ae..8a783eace5 100644 --- a/components/dfs/filesystems/skeleton/skeleton.h +++ b/components/dfs/filesystems/skeleton/skeleton.h @@ -1,21 +1,7 @@ /* - * File : skeleton.h - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/uffs/dfs_uffs.c b/components/dfs/filesystems/uffs/dfs_uffs.c index c3538ea23f..b875d1eb00 100644 --- a/components/dfs/filesystems/uffs/dfs_uffs.c +++ b/components/dfs/filesystems/uffs/dfs_uffs.c @@ -1,21 +1,7 @@ /* - * File : dfs_uffs.c - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes @@ -348,7 +334,7 @@ static int dfs_uffs_open(struct dfs_fd* file) return uffs_result_to_dfs(uffs_get_error()); } - /* save this pointer, it will be used when calling read()��write(), + /* save this pointer, it will be used when calling read(), write(), * flush(), seek(), and will be free when calling close()*/ file->data = (void *)fd; diff --git a/components/dfs/filesystems/uffs/dfs_uffs.h b/components/dfs/filesystems/uffs/dfs_uffs.h index 810ab7ebfe..615d29036d 100644 --- a/components/dfs/filesystems/uffs/dfs_uffs.h +++ b/components/dfs/filesystems/uffs/dfs_uffs.h @@ -1,21 +1,7 @@ /* - * File : dfs_uffs.h - * This file is part of Device File System in RT-Thread RTOS - * COPYRIGHT (C) 2004-2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/components/dfs/filesystems/uffs/uffs_rtthread.c b/components/dfs/filesystems/uffs/uffs_rtthread.c index 2bafca92bc..bad456f04c 100644 --- a/components/dfs/filesystems/uffs/uffs_rtthread.c +++ b/components/dfs/filesystems/uffs/uffs_rtthread.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ /* This file is part of UFFS, the Ultra-low-cost Flash File System. From 070248bb04a73fd7263b15856c63a9eed0fa748e Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Mon, 15 Oct 2018 09:23:58 +0800 Subject: [PATCH 12/31] Update spi_flash_w25qxx.c --- components/drivers/spi/spi_flash_w25qxx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/drivers/spi/spi_flash_w25qxx.c b/components/drivers/spi/spi_flash_w25qxx.c index 2773539fbc..bba9c0b5cc 100644 --- a/components/drivers/spi/spi_flash_w25qxx.c +++ b/components/drivers/spi/spi_flash_w25qxx.c @@ -27,7 +27,7 @@ #define PAGE_SIZE 4096 -/* JEDEC Manufacturer锟斤拷s ID */ +/* JEDEC Manufacturer ID */ #define MF_ID (0xEF) /* JEDEC Device ID: Memory type and Capacity */ From 65340e46e35e5ffd13073533b1d7606dacba93d6 Mon Sep 17 00:00:00 2001 From: eddylin83 Date: Mon, 15 Oct 2018 13:02:33 +0800 Subject: [PATCH 13/31] fix at socket issue,online AT package might be fixed too(at_socket_device_register spell mistake) --- components/net/at/at_socket/at_socket.c | 6 +++++- components/net/at/at_socket/at_socket.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/components/net/at/at_socket/at_socket.c b/components/net/at/at_socket/at_socket.c index fec1997579..69112204fa 100644 --- a/components/net/at/at_socket/at_socket.c +++ b/components/net/at/at_socket/at_socket.c @@ -655,6 +655,10 @@ int at_recvfrom(int socket, void *mem, size_t len, int flags, struct sockaddr *f { timeout = RT_WAITING_FOREVER; } + else + { + timeout = rt_tick_from_millisecond(timeout); + } while (1) { @@ -1161,7 +1165,7 @@ void at_freeaddrinfo(struct addrinfo *ai) } } -void at_scoket_device_register(const struct at_device_ops *ops) +void at_socket_device_register(const struct at_device_ops *ops) { RT_ASSERT(ops); RT_ASSERT(ops->at_connect); diff --git a/components/net/at/at_socket/at_socket.h b/components/net/at/at_socket/at_socket.h index 73368d28ca..526f8d618a 100644 --- a/components/net/at/at_socket/at_socket.h +++ b/components/net/at/at_socket/at_socket.h @@ -129,7 +129,7 @@ int at_getaddrinfo(const char *nodename, const char *servname, const struct addr void at_freeaddrinfo(struct addrinfo *ai); struct at_socket *at_get_socket(int socket); -void at_scoket_device_register(const struct at_device_ops *ops); +void at_socket_device_register(const struct at_device_ops *ops); #ifndef RT_USING_SAL From 61656e23f2d39465c2608529b60ca64efba07fd6 Mon Sep 17 00:00:00 2001 From: hichard Date: Mon, 15 Oct 2018 19:45:16 +0800 Subject: [PATCH 14/31] =?UTF-8?q?=E4=BF=AE=E5=A4=8Diar=20dlib=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=98=A0=E5=B0=84=E5=87=BD=E6=95=B0=E7=9A=84=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E5=A3=B0=E6=98=8E=EF=BC=8C=E9=80=82=E5=BA=94=E4=B8=8D?= =?UTF-8?q?=E5=90=8C=E7=89=88=E6=9C=AC=E7=9A=84iar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/libc/compilers/dlib/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/libc/compilers/dlib/time.c b/components/libc/compilers/dlib/time.c index bea01e90e5..12c7f893e9 100644 --- a/components/libc/compilers/dlib/time.c +++ b/components/libc/compilers/dlib/time.c @@ -42,9 +42,9 @@ int gettimeofday(struct timeval *tp, void *ignore) */ #pragma module_name = "?time" #if _DLIB_TIME_ALLOW_64 -time_t __time64(time_t *t) +__time64_t __time64(__time64_t *t) #else -time_t __time32(time_t *t) +__time32_t __time32(__time32_t *t) #endif { time_t time_now = 0; From bd731fe1f0a61fb1d959d9d2a367f618e2bb65fb Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Tue, 16 Oct 2018 09:18:53 +0800 Subject: [PATCH 15/31] [license] Fix the bad license header for lpc24xx. --- libcpu/arm/lpc24xx/start_rvds.S | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/libcpu/arm/lpc24xx/start_rvds.S b/libcpu/arm/lpc24xx/start_rvds.S index e55e9ba840..36f59cf9f6 100644 --- a/libcpu/arm/lpc24xx/start_rvds.S +++ b/libcpu/arm/lpc24xx/start_rvds.S @@ -1,11 +1,12 @@ -/* - * Copyright (c) 2006-2018, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - */ +;/* +; * Copyright (c) 2006-2018, RT-Thread Development Team +; * +; * SPDX-License-Identifier: Apache-2.0 +; * +; * Change Logs: +; * Date Author Notes +; */ +; ;/*****************************************************************************/ ;/* LPC2400.S: Startup file for Philips LPC2400 device series */ ;/*****************************************************************************/ From 8cae067452477befccb53682968a472e30b8e7ab Mon Sep 17 00:00:00 2001 From: armink Date: Tue, 16 Oct 2018 10:31:06 +0800 Subject: [PATCH 16/31] [component][sal] Add some #ifdef on source code. --- components/net/sal_socket/impl/af_inet_at.c | 4 ++++ components/net/sal_socket/impl/af_inet_lwip.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/components/net/sal_socket/impl/af_inet_at.c b/components/net/sal_socket/impl/af_inet_at.c index fe7ad6cd13..c064283a61 100644 --- a/components/net/sal_socket/impl/af_inet_at.c +++ b/components/net/sal_socket/impl/af_inet_at.c @@ -20,6 +20,8 @@ #include #endif +#ifdef SAL_USING_AT + #ifdef SAL_USING_POSIX static int at_poll(struct dfs_fd *file, struct rt_pollreq *req) { @@ -111,3 +113,5 @@ int at_inet_init(void) return 0; } INIT_COMPONENT_EXPORT(at_inet_init); + +#endif /* SAL_USING_AT */ diff --git a/components/net/sal_socket/impl/af_inet_lwip.c b/components/net/sal_socket/impl/af_inet_lwip.c index e20e16ffaf..41ea9ac968 100644 --- a/components/net/sal_socket/impl/af_inet_lwip.c +++ b/components/net/sal_socket/impl/af_inet_lwip.c @@ -30,6 +30,8 @@ #endif #endif +#ifdef SAL_USING_LWIP + #ifdef SAL_USING_POSIX /* * Re-define lwip socket @@ -293,3 +295,5 @@ int lwip_inet_init(void) return 0; } INIT_COMPONENT_EXPORT(lwip_inet_init); + +#endif /* SAL_USING_LWIP */ From e2b5fcd07450b0fa2014cba450a896a9bd61cc72 Mon Sep 17 00:00:00 2001 From: armink Date: Tue, 16 Oct 2018 10:31:21 +0800 Subject: [PATCH 17/31] [component][at] Add some #ifdef on source code. --- components/net/at/at_socket/at_socket.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/net/at/at_socket/at_socket.c b/components/net/at/at_socket/at_socket.c index 69112204fa..6fd2e765d4 100644 --- a/components/net/at/at_socket/at_socket.c +++ b/components/net/at/at_socket/at_socket.c @@ -23,6 +23,8 @@ #define LOG_TAG "at.skt" #include +#ifdef AT_USING_SOCKET + #define HTONS_PORT(x) ((((x) & 0x00ffUL) << 8) | (((x) & 0xff00UL) >> 8)) #define NIPQUAD(addr) \ ((unsigned char *)&addr)[0], \ @@ -1175,3 +1177,5 @@ void at_socket_device_register(const struct at_device_ops *ops) RT_ASSERT(ops->at_set_event_cb); at_dev_ops = (struct at_device_ops *) ops; } + +#endif /* AT_USING_SOCKET */ From 87dad10f3f2459d5a69904040f32f29c82d81721 Mon Sep 17 00:00:00 2001 From: "chenchaoqun@rt-thread.com" Date: Tue, 16 Oct 2018 13:00:37 +0800 Subject: [PATCH 18/31] [license] Change the license to Apache --- bsp/stm32f0x/applications/application.c | 8 ++------ bsp/stm32f0x/applications/startup.c | 8 ++------ bsp/stm32f0x/drivers/board.c | 8 ++------ bsp/stm32f0x/drivers/board.h | 8 ++------ bsp/stm32f0x/drivers/led.c | 8 ++------ bsp/stm32f0x/drivers/led.h | 8 ++------ bsp/stm32f0x/drivers/usart.c | 8 ++------ bsp/stm32f0x/drivers/usart.h | 8 ++------ bsp/stm32f107/applications/application.c | 8 ++------ bsp/stm32f107/applications/startup.c | 8 ++------ bsp/stm32f107/drivers/board.c | 8 ++------ bsp/stm32f107/drivers/board.h | 8 ++------ bsp/stm32f107/drivers/gpio.c | 8 ++------ bsp/stm32f107/drivers/gpio.h | 8 ++------ bsp/stm32f107/drivers/stm32f1_rtc.c | 8 ++------ bsp/stm32f107/drivers/stm32f1_rtc.h | 8 ++------ bsp/stm32f107/drivers/usart.c | 8 ++------ bsp/stm32f107/drivers/usart.h | 8 ++------ bsp/stm32f10x/applications/application.c | 8 ++------ bsp/stm32f10x/applications/canapp.c | 8 ++------ bsp/stm32f10x/applications/startup.c | 8 ++------ bsp/stm32f10x/drivers/board.c | 8 ++------ bsp/stm32f10x/drivers/board.h | 8 ++------ bsp/stm32f10x/drivers/bxcan.c | 8 ++------ bsp/stm32f10x/drivers/bxcan.h | 8 ++------ bsp/stm32f10x/drivers/dm9000a.c | 8 ++------ bsp/stm32f10x/drivers/dm9000a.h | 8 ++------ bsp/stm32f10x/drivers/fm24cl64.c | 8 ++------ bsp/stm32f10x/drivers/fm24cl64.h | 8 ++------ bsp/stm32f10x/drivers/gpio.c | 8 ++------ bsp/stm32f10x/drivers/gpio.h | 8 ++------ bsp/stm32f10x/drivers/led.c | 8 ++------ bsp/stm32f10x/drivers/led.h | 9 +++------ bsp/stm32f10x/drivers/stm32f1_i2c.c | 8 ++------ bsp/stm32f10x/drivers/stm32f1_i2c.h | 8 ++------ bsp/stm32f10x/drivers/stm32f1_rtc.c | 8 ++------ bsp/stm32f10x/drivers/stm32f1_rtc.h | 8 ++------ bsp/stm32f10x/drivers/stm32f1_wdg.c | 8 ++------ bsp/stm32f10x/drivers/usart.c | 8 ++------ bsp/stm32f10x/drivers/usart.h | 8 ++------ bsp/stm32f20x/Drivers/24LCxx.c | 8 ++------ bsp/stm32f20x/Drivers/board.c | 8 ++------ bsp/stm32f20x/Drivers/board.h | 8 ++------ bsp/stm32f20x/Drivers/drv_rtc.c | 8 ++------ bsp/stm32f20x/Drivers/drv_rtc.h | 8 ++------ bsp/stm32f20x/Drivers/i2c.c | 10 +++------- bsp/stm32f20x/Drivers/serial.c | 8 ++------ bsp/stm32f20x/Drivers/serial.h | 8 ++------ bsp/stm32f20x/Drivers/usart.c | 8 ++------ bsp/stm32f20x/Drivers/usart.h | 8 ++------ bsp/stm32f20x/applications/application.c | 8 ++------ bsp/stm32f20x/applications/startup.c | 8 ++------ bsp/stm32f40x/applications/main.c | 8 ++------ bsp/stm32f40x/drivers/board.c | 8 ++------ bsp/stm32f40x/drivers/board.h | 8 ++------ bsp/stm32f40x/drivers/drv_hwtimer.c | 8 ++------ bsp/stm32f40x/drivers/gpio.c | 8 ++------ bsp/stm32f40x/drivers/gpio.h | 8 ++------ bsp/stm32f40x/drivers/stm32f4_rtc.c | 8 ++------ bsp/stm32f40x/drivers/stm32f4_rtc.h | 8 ++------ bsp/stm32f40x/drivers/usart.c | 8 ++------ bsp/stm32f40x/drivers/usart.h | 8 ++------ bsp/stm32f411-nucleo/applications/main.c | 8 ++------ bsp/stm32f411-nucleo/drivers/board.c | 8 ++------ bsp/stm32f411-nucleo/drivers/board.h | 8 ++------ bsp/stm32f411-nucleo/drivers/drv_usart.h | 8 ++------ .../applications/application.c | 8 ++------ .../applications/rtgui_demo.c | 8 ++------ .../applications/rtgui_demo.h | 8 ++------ bsp/stm32f429-apollo/applications/startup.c | 8 ++------ bsp/stm32f429-apollo/drivers/board.c | 8 ++------ bsp/stm32f429-apollo/drivers/board.h | 8 ++------ bsp/stm32f429-apollo/drivers/drv_eth.c | 8 ++------ bsp/stm32f429-apollo/drivers/drv_gpio.c | 8 ++------ bsp/stm32f429-apollo/drivers/drv_gpio.h | 8 ++------ bsp/stm32f429-apollo/drivers/drv_i2c.c | 8 ++------ bsp/stm32f429-apollo/drivers/drv_i2c.h | 12 ++++------- bsp/stm32f429-apollo/drivers/drv_lcd.c | 8 ++------ bsp/stm32f429-apollo/drivers/drv_nand.c | 8 ++------ bsp/stm32f429-apollo/drivers/drv_pcf8574.c | 8 ++------ bsp/stm32f429-apollo/drivers/drv_rtc.c | 8 ++------ bsp/stm32f429-apollo/drivers/drv_rtc.h | 20 +++++++------------ bsp/stm32f429-apollo/drivers/drv_sdram.c | 18 ++--------------- bsp/stm32f429-apollo/drivers/drv_sdram.h | 8 ++------ bsp/stm32f429-apollo/drivers/drv_spi.c | 8 ++------ bsp/stm32f429-apollo/drivers/drv_spi.h | 8 ++------ bsp/stm32f429-apollo/drivers/drv_spi_flash.c | 8 ++------ bsp/stm32f429-apollo/drivers/usart.c | 8 ++------ bsp/stm32f429-apollo/drivers/usart.h | 8 ++------ .../applications/application.c | 8 ++------ .../applications/rtgui_demo.c | 8 ++------ .../applications/rtgui_demo.h | 8 ++------ bsp/stm32f429-armfly/applications/startup.c | 8 ++------ bsp/stm32f429-armfly/drivers/board.c | 8 ++------ bsp/stm32f429-armfly/drivers/board.h | 8 ++------ bsp/stm32f429-armfly/drivers/drv_eth.c | 8 ++------ bsp/stm32f429-armfly/drivers/drv_ft5x06.c | 18 ++--------------- bsp/stm32f429-armfly/drivers/drv_i2c.c | 8 ++------ bsp/stm32f429-armfly/drivers/drv_lcd.c | 8 ++------ bsp/stm32f429-armfly/drivers/drv_sdram.c | 8 ++------ bsp/stm32f429-armfly/drivers/drv_spi.c | 8 ++------ bsp/stm32f429-armfly/drivers/drv_spi.h | 8 ++------ bsp/stm32f429-armfly/drivers/drv_spi_flash.c | 8 ++------ bsp/stm32f429-armfly/drivers/usart.c | 8 ++------ bsp/stm32f429-armfly/drivers/usart.h | 8 ++------ bsp/stm32f4xx-HAL/applications/main.c | 8 ++------ bsp/stm32f4xx-HAL/drivers/board.c | 8 ++------ bsp/stm32f4xx-HAL/drivers/board.h | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_can.c | 18 ++--------------- bsp/stm32f4xx-HAL/drivers/drv_can.h | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_gpio.c | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_gpio.h | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_i2c.c | 18 ++--------------- bsp/stm32f4xx-HAL/drivers/drv_i2c.h | 19 +++--------------- bsp/stm32f4xx-HAL/drivers/drv_iwg.c | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_iwg.h | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_pwm.c | 18 ++--------------- bsp/stm32f4xx-HAL/drivers/drv_rtc.c | 18 ++--------------- bsp/stm32f4xx-HAL/drivers/drv_rtc.h | 18 ++--------------- bsp/stm32f4xx-HAL/drivers/drv_spi.c | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_spi.h | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_spiflash.c | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_spiflash.h | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_usart.h | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_usbd.c | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_usbd.h | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_usbh.c | 8 ++------ bsp/stm32f4xx-HAL/drivers/drv_usbh.h | 8 ++------ bsp/stm32f7-disco/applications/main.c | 18 ++--------------- bsp/stm32f7-disco/drivers/board.c | 18 ++--------------- bsp/stm32f7-disco/drivers/board.h | 8 ++------ bsp/stm32f7-disco/drivers/drv_cache.c | 18 ++--------------- bsp/stm32f7-disco/drivers/drv_mpu.c | 18 ++--------------- bsp/stm32f7-disco/drivers/drv_mpu.h | 18 ++--------------- bsp/stm32f7-disco/drivers/drv_sdram.c | 18 ++--------------- bsp/stm32f7-disco/drivers/drv_sdram.h | 11 ++++------ bsp/stm32f7-disco/drivers/drv_usart.c | 18 ++--------------- bsp/stm32f7-disco/drivers/drv_usart.h | 18 ++--------------- bsp/stm32h743-nucleo/applications/main.c | 18 ++--------------- bsp/stm32h743-nucleo/applications/sram.c | 18 ++--------------- bsp/stm32h743-nucleo/applications/sram.h | 8 ++------ bsp/stm32h743-nucleo/drivers/board.c | 18 ++--------------- bsp/stm32h743-nucleo/drivers/board.h | 8 ++------ bsp/stm32h743-nucleo/drivers/drv_led.c | 18 ++--------------- bsp/stm32h743-nucleo/drivers/drv_led.h | 8 ++------ bsp/stm32h743-nucleo/drivers/drv_mpu.c | 18 ++--------------- bsp/stm32h743-nucleo/drivers/drv_mpu.h | 8 ++------ bsp/stm32h743-nucleo/drivers/drv_usart.c | 18 ++--------------- bsp/stm32h743-nucleo/drivers/drv_usart.h | 8 ++------ bsp/stm32h743-nucleo/drivers/lan8742a.c | 18 ++--------------- bsp/stm32h743-nucleo/drivers/lan8742a.h | 8 ++------ bsp/stm32l072/app/application.c | 8 ++------ bsp/stm32l072/app/startup.c | 8 ++------ bsp/stm32l072/board/board.c | 8 ++------ bsp/stm32l072/board/board.h | 8 ++------ bsp/stm32l072/board/drv_spi.c | 8 ++------ bsp/stm32l072/board/gpio.c | 8 ++------ bsp/stm32l072/board/usart.c | 8 ++------ bsp/stm32l072/board/usart.h | 8 ++------ .../applications/application.c | 8 ++------ .../applications/startup.c | 8 ++------ bsp/stm32l475-iot-disco/drivers/board.c | 8 ++------ bsp/stm32l475-iot-disco/drivers/board.h | 8 ++------ bsp/stm32l475-iot-disco/drivers/usart.c | 8 ++------ bsp/stm32l475-iot-disco/drivers/usart.h | 8 ++------ bsp/stm32l476-nucleo/applications/main.c | 18 ++--------------- bsp/stm32l476-nucleo/drivers/board.c | 18 ++--------------- bsp/stm32l476-nucleo/drivers/board.h | 18 ++--------------- bsp/stm32l476-nucleo/drivers/drv_gpio.c | 18 ++--------------- bsp/stm32l476-nucleo/drivers/drv_gpio.h | 8 ++------ bsp/stm32l476-nucleo/drivers/drv_usart.h | 8 ++------ 171 files changed, 354 insertions(+), 1307 deletions(-) diff --git a/bsp/stm32f0x/applications/application.c b/bsp/stm32f0x/applications/application.c index c0fb3b4b2f..0eedb8022c 100644 --- a/bsp/stm32f0x/applications/application.c +++ b/bsp/stm32f0x/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f0x/applications/startup.c b/bsp/stm32f0x/applications/startup.c index f66536b6b6..61ff677cc3 100644 --- a/bsp/stm32f0x/applications/startup.c +++ b/bsp/stm32f0x/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f0x/drivers/board.c b/bsp/stm32f0x/drivers/board.c index 5e9fc2add5..e8833b43ee 100644 --- a/bsp/stm32f0x/drivers/board.c +++ b/bsp/stm32f0x/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f0x/drivers/board.h b/bsp/stm32f0x/drivers/board.h index ea4e537f3a..50325790e4 100644 --- a/bsp/stm32f0x/drivers/board.h +++ b/bsp/stm32f0x/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f0x/drivers/led.c b/bsp/stm32f0x/drivers/led.c index 2a17a55adb..b038b5b253 100644 --- a/bsp/stm32f0x/drivers/led.c +++ b/bsp/stm32f0x/drivers/led.c @@ -1,11 +1,7 @@ /* - * File : led.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f0x/drivers/led.h b/bsp/stm32f0x/drivers/led.h index af513637a2..0d303ae18c 100644 --- a/bsp/stm32f0x/drivers/led.h +++ b/bsp/stm32f0x/drivers/led.h @@ -1,11 +1,7 @@ /* - * File : led.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f0x/drivers/usart.c b/bsp/stm32f0x/drivers/usart.c index 1f6fbab7a2..0c4aa15821 100644 --- a/bsp/stm32f0x/drivers/usart.c +++ b/bsp/stm32f0x/drivers/usart.c @@ -1,11 +1,7 @@ /* - * File : usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f0x/drivers/usart.h b/bsp/stm32f0x/drivers/usart.h index 6d733a2d61..aed5b1448f 100644 --- a/bsp/stm32f0x/drivers/usart.h +++ b/bsp/stm32f0x/drivers/usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f107/applications/application.c b/bsp/stm32f107/applications/application.c index 6312734000..f220cb4917 100644 --- a/bsp/stm32f107/applications/application.c +++ b/bsp/stm32f107/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f107/applications/startup.c b/bsp/stm32f107/applications/startup.c index 669746f287..d64943c32b 100644 --- a/bsp/stm32f107/applications/startup.c +++ b/bsp/stm32f107/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2013, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f107/drivers/board.c b/bsp/stm32f107/drivers/board.c index 9f70058c37..9013e5d07c 100644 --- a/bsp/stm32f107/drivers/board.c +++ b/bsp/stm32f107/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f107/drivers/board.h b/bsp/stm32f107/drivers/board.h index 7d067fcc5d..9b5dff53e3 100644 --- a/bsp/stm32f107/drivers/board.h +++ b/bsp/stm32f107/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f107/drivers/gpio.c b/bsp/stm32f107/drivers/gpio.c index e0778f35d5..b92685ebdf 100644 --- a/bsp/stm32f107/drivers/gpio.c +++ b/bsp/stm32f107/drivers/gpio.c @@ -1,11 +1,7 @@ /* - * File : gpio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f107/drivers/gpio.h b/bsp/stm32f107/drivers/gpio.h index 03b744b333..5e75adf443 100644 --- a/bsp/stm32f107/drivers/gpio.h +++ b/bsp/stm32f107/drivers/gpio.h @@ -1,11 +1,7 @@ /* - * File : gpio.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f107/drivers/stm32f1_rtc.c b/bsp/stm32f107/drivers/stm32f1_rtc.c index 68fab1ce00..62a4afcafe 100644 --- a/bsp/stm32f107/drivers/stm32f1_rtc.c +++ b/bsp/stm32f107/drivers/stm32f1_rtc.c @@ -1,11 +1,7 @@ /* - * File : stm32f1_rtc.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f107/drivers/stm32f1_rtc.h b/bsp/stm32f107/drivers/stm32f1_rtc.h index 02f463fce5..3bd050a178 100644 --- a/bsp/stm32f107/drivers/stm32f1_rtc.h +++ b/bsp/stm32f107/drivers/stm32f1_rtc.h @@ -1,11 +1,7 @@ /* - * File : stm32f1_rtc.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f107/drivers/usart.c b/bsp/stm32f107/drivers/usart.c index c82fba3ee3..87c153e975 100644 --- a/bsp/stm32f107/drivers/usart.c +++ b/bsp/stm32f107/drivers/usart.c @@ -1,11 +1,7 @@ /* - * File : usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f107/drivers/usart.h b/bsp/stm32f107/drivers/usart.h index 438578d86b..2127f3d533 100644 --- a/bsp/stm32f107/drivers/usart.h +++ b/bsp/stm32f107/drivers/usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/applications/application.c b/bsp/stm32f10x/applications/application.c index 774940de46..3db9063f53 100644 --- a/bsp/stm32f10x/applications/application.c +++ b/bsp/stm32f10x/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/applications/canapp.c b/bsp/stm32f10x/applications/canapp.c index ba9d592247..542fbd04bc 100644 --- a/bsp/stm32f10x/applications/canapp.c +++ b/bsp/stm32f10x/applications/canapp.c @@ -1,11 +1,7 @@ /* - * File : canapp.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/applications/startup.c b/bsp/stm32f10x/applications/startup.c index cbb4bc54e2..31a2fa911c 100644 --- a/bsp/stm32f10x/applications/startup.c +++ b/bsp/stm32f10x/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/board.c b/bsp/stm32f10x/drivers/board.c index f2525b718e..3829371308 100644 --- a/bsp/stm32f10x/drivers/board.c +++ b/bsp/stm32f10x/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/board.h b/bsp/stm32f10x/drivers/board.h index 79360b2d28..1a55866b50 100644 --- a/bsp/stm32f10x/drivers/board.h +++ b/bsp/stm32f10x/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/bxcan.c b/bsp/stm32f10x/drivers/bxcan.c index f49b6dcfb9..e9032d8261 100644 --- a/bsp/stm32f10x/drivers/bxcan.c +++ b/bsp/stm32f10x/drivers/bxcan.c @@ -1,11 +1,7 @@ /* - * File : bxcan.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/bxcan.h b/bsp/stm32f10x/drivers/bxcan.h index 5e6cad087c..51ac616f3a 100644 --- a/bsp/stm32f10x/drivers/bxcan.h +++ b/bsp/stm32f10x/drivers/bxcan.h @@ -1,11 +1,7 @@ /* - * File : bxcan.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/dm9000a.c b/bsp/stm32f10x/drivers/dm9000a.c index a622122c58..0aa1ddb58c 100644 --- a/bsp/stm32f10x/drivers/dm9000a.c +++ b/bsp/stm32f10x/drivers/dm9000a.c @@ -1,11 +1,7 @@ /* - * File : dm9000a.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/dm9000a.h b/bsp/stm32f10x/drivers/dm9000a.h index a269f64215..0bfdadf16b 100644 --- a/bsp/stm32f10x/drivers/dm9000a.h +++ b/bsp/stm32f10x/drivers/dm9000a.h @@ -1,11 +1,7 @@ /* - * File : dm9000a.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/fm24cl64.c b/bsp/stm32f10x/drivers/fm24cl64.c index 2cf60e9068..05c02448dd 100644 --- a/bsp/stm32f10x/drivers/fm24cl64.c +++ b/bsp/stm32f10x/drivers/fm24cl64.c @@ -1,11 +1,7 @@ /* - * File : fm24cl64.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/fm24cl64.h b/bsp/stm32f10x/drivers/fm24cl64.h index bc613fea72..3b76d5ff41 100644 --- a/bsp/stm32f10x/drivers/fm24cl64.h +++ b/bsp/stm32f10x/drivers/fm24cl64.h @@ -1,11 +1,7 @@ /* - * File : fm24cl64.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/gpio.c b/bsp/stm32f10x/drivers/gpio.c index 5dc10faf32..d8c335fb3b 100755 --- a/bsp/stm32f10x/drivers/gpio.c +++ b/bsp/stm32f10x/drivers/gpio.c @@ -1,11 +1,7 @@ /* - * File : gpio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/gpio.h b/bsp/stm32f10x/drivers/gpio.h index 03b744b333..5e75adf443 100644 --- a/bsp/stm32f10x/drivers/gpio.h +++ b/bsp/stm32f10x/drivers/gpio.h @@ -1,11 +1,7 @@ /* - * File : gpio.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/led.c b/bsp/stm32f10x/drivers/led.c index 2a25fc19ac..ff43f4fa30 100644 --- a/bsp/stm32f10x/drivers/led.c +++ b/bsp/stm32f10x/drivers/led.c @@ -1,11 +1,7 @@ /* - * File : led.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/led.h b/bsp/stm32f10x/drivers/led.h index 31900cdc65..146a4260db 100644 --- a/bsp/stm32f10x/drivers/led.h +++ b/bsp/stm32f10x/drivers/led.h @@ -1,11 +1,8 @@ /* - * File : led.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team +/* + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/stm32f1_i2c.c b/bsp/stm32f10x/drivers/stm32f1_i2c.c index e34cd0c63c..f7f7c8bf01 100644 --- a/bsp/stm32f10x/drivers/stm32f1_i2c.c +++ b/bsp/stm32f10x/drivers/stm32f1_i2c.c @@ -1,11 +1,7 @@ /* - * File : stm32f1_i2c.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/stm32f1_i2c.h b/bsp/stm32f10x/drivers/stm32f1_i2c.h index 0cebe02e85..c0658315bd 100644 --- a/bsp/stm32f10x/drivers/stm32f1_i2c.h +++ b/bsp/stm32f10x/drivers/stm32f1_i2c.h @@ -1,11 +1,7 @@ /* - * File : stm32f1_i2c.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/stm32f1_rtc.c b/bsp/stm32f10x/drivers/stm32f1_rtc.c index 68fab1ce00..62a4afcafe 100644 --- a/bsp/stm32f10x/drivers/stm32f1_rtc.c +++ b/bsp/stm32f10x/drivers/stm32f1_rtc.c @@ -1,11 +1,7 @@ /* - * File : stm32f1_rtc.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/stm32f1_rtc.h b/bsp/stm32f10x/drivers/stm32f1_rtc.h index 02f463fce5..3bd050a178 100644 --- a/bsp/stm32f10x/drivers/stm32f1_rtc.h +++ b/bsp/stm32f10x/drivers/stm32f1_rtc.h @@ -1,11 +1,7 @@ /* - * File : stm32f1_rtc.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/stm32f1_wdg.c b/bsp/stm32f10x/drivers/stm32f1_wdg.c index a26283fb27..d246219c96 100644 --- a/bsp/stm32f10x/drivers/stm32f1_wdg.c +++ b/bsp/stm32f10x/drivers/stm32f1_wdg.c @@ -1,11 +1,7 @@ /* - * File : stm32f1_wdg.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/usart.c b/bsp/stm32f10x/drivers/usart.c index 65a05c3afe..3841a5c9f1 100644 --- a/bsp/stm32f10x/drivers/usart.c +++ b/bsp/stm32f10x/drivers/usart.c @@ -1,11 +1,7 @@ /* - * File : usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f10x/drivers/usart.h b/bsp/stm32f10x/drivers/usart.h index 438578d86b..2127f3d533 100644 --- a/bsp/stm32f10x/drivers/usart.h +++ b/bsp/stm32f10x/drivers/usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f20x/Drivers/24LCxx.c b/bsp/stm32f20x/Drivers/24LCxx.c index 1142a69aad..1903a85b82 100644 --- a/bsp/stm32f20x/Drivers/24LCxx.c +++ b/bsp/stm32f20x/Drivers/24LCxx.c @@ -1,11 +1,7 @@ /* - * File : 24LCxx.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f20x/Drivers/board.c b/bsp/stm32f20x/Drivers/board.c index 8bf9c07526..e3cfdbbc12 100644 --- a/bsp/stm32f20x/Drivers/board.c +++ b/bsp/stm32f20x/Drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f20x/Drivers/board.h b/bsp/stm32f20x/Drivers/board.h index a938eaf569..63a97b6b1c 100644 --- a/bsp/stm32f20x/Drivers/board.h +++ b/bsp/stm32f20x/Drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f20x/Drivers/drv_rtc.c b/bsp/stm32f20x/Drivers/drv_rtc.c index 1715a431d3..3c70a417d2 100644 --- a/bsp/stm32f20x/Drivers/drv_rtc.c +++ b/bsp/stm32f20x/Drivers/drv_rtc.c @@ -1,11 +1,7 @@ /* - * File : rtc.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f20x/Drivers/drv_rtc.h b/bsp/stm32f20x/Drivers/drv_rtc.h index 1f54d59328..8f6c9a00a0 100644 --- a/bsp/stm32f20x/Drivers/drv_rtc.h +++ b/bsp/stm32f20x/Drivers/drv_rtc.h @@ -1,11 +1,7 @@ /* - * File : rtc.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f20x/Drivers/i2c.c b/bsp/stm32f20x/Drivers/i2c.c index 7d3e0d8859..e1b4b02ffa 100644 --- a/bsp/stm32f20x/Drivers/i2c.c +++ b/bsp/stm32f20x/Drivers/i2c.c @@ -1,11 +1,7 @@ /* - * File : i2c.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes @@ -93,7 +89,7 @@ Status I2C_AcknowledgePolling(I2C_TypeDef* I2Cx ,uint8_t Addr) } I2Cx->CR1 |= CR1_START_Set; - tmp = I2Cx->SR1;//²M°£SB¦ì + tmp = I2Cx->SR1;//MSB I2Cx->DR = Addr; }while((I2Cx->SR1&0x0002) != 0x0002); diff --git a/bsp/stm32f20x/Drivers/serial.c b/bsp/stm32f20x/Drivers/serial.c index 644f1a2a55..4ccc041689 100644 --- a/bsp/stm32f20x/Drivers/serial.c +++ b/bsp/stm32f20x/Drivers/serial.c @@ -1,11 +1,7 @@ /* - * File : serial.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f20x/Drivers/serial.h b/bsp/stm32f20x/Drivers/serial.h index f1c698f74a..8ab56b4839 100644 --- a/bsp/stm32f20x/Drivers/serial.h +++ b/bsp/stm32f20x/Drivers/serial.h @@ -1,11 +1,7 @@ /* - * File : serial.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 - 2010, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f20x/Drivers/usart.c b/bsp/stm32f20x/Drivers/usart.c index ae6a4ba926..ff82ab9f8a 100644 --- a/bsp/stm32f20x/Drivers/usart.c +++ b/bsp/stm32f20x/Drivers/usart.c @@ -1,11 +1,7 @@ /* - * File : usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f20x/Drivers/usart.h b/bsp/stm32f20x/Drivers/usart.h index 48925df880..176c179e5b 100644 --- a/bsp/stm32f20x/Drivers/usart.h +++ b/bsp/stm32f20x/Drivers/usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f20x/applications/application.c b/bsp/stm32f20x/applications/application.c index fcb378f62e..4f37de7b30 100644 --- a/bsp/stm32f20x/applications/application.c +++ b/bsp/stm32f20x/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f20x/applications/startup.c b/bsp/stm32f20x/applications/startup.c index 0cd014b25a..77f915cbbd 100644 --- a/bsp/stm32f20x/applications/startup.c +++ b/bsp/stm32f20x/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f40x/applications/main.c b/bsp/stm32f40x/applications/main.c index 9b756ac597..41964f50dc 100644 --- a/bsp/stm32f40x/applications/main.c +++ b/bsp/stm32f40x/applications/main.c @@ -1,11 +1,7 @@ /* - * File : main.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f40x/drivers/board.c b/bsp/stm32f40x/drivers/board.c index 1b37d7e348..123f56bdad 100644 --- a/bsp/stm32f40x/drivers/board.c +++ b/bsp/stm32f40x/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f40x/drivers/board.h b/bsp/stm32f40x/drivers/board.h index d238413631..2aeb007274 100644 --- a/bsp/stm32f40x/drivers/board.h +++ b/bsp/stm32f40x/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f40x/drivers/drv_hwtimer.c b/bsp/stm32f40x/drivers/drv_hwtimer.c index 8802021e18..9feb19e145 100644 --- a/bsp/stm32f40x/drivers/drv_hwtimer.c +++ b/bsp/stm32f40x/drivers/drv_hwtimer.c @@ -1,11 +1,7 @@ /* - * File : drv_hwtimer.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f40x/drivers/gpio.c b/bsp/stm32f40x/drivers/gpio.c index 8d8ac42bbf..8a4c5bf2e4 100644 --- a/bsp/stm32f40x/drivers/gpio.c +++ b/bsp/stm32f40x/drivers/gpio.c @@ -1,11 +1,7 @@ /* - * File : gpio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f40x/drivers/gpio.h b/bsp/stm32f40x/drivers/gpio.h index a4947b100d..be40ba3658 100644 --- a/bsp/stm32f40x/drivers/gpio.h +++ b/bsp/stm32f40x/drivers/gpio.h @@ -1,11 +1,7 @@ /* - * File : gpio.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f40x/drivers/stm32f4_rtc.c b/bsp/stm32f40x/drivers/stm32f4_rtc.c index 246622ccc8..96a62fc637 100644 --- a/bsp/stm32f40x/drivers/stm32f4_rtc.c +++ b/bsp/stm32f40x/drivers/stm32f4_rtc.c @@ -1,11 +1,7 @@ /* - * File : stm32f4_rtc.c - * This file is stm32f4 rtc driver part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f40x/drivers/stm32f4_rtc.h b/bsp/stm32f40x/drivers/stm32f4_rtc.h index 42fa4ebed7..0fb2a4694c 100644 --- a/bsp/stm32f40x/drivers/stm32f4_rtc.h +++ b/bsp/stm32f40x/drivers/stm32f4_rtc.h @@ -1,11 +1,7 @@ /* - * File : stm32f4_rtc.h - * This file is stm32f4 rtc driver part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f40x/drivers/usart.c b/bsp/stm32f40x/drivers/usart.c index 03d8c23235..0633c82cdd 100644 --- a/bsp/stm32f40x/drivers/usart.c +++ b/bsp/stm32f40x/drivers/usart.c @@ -1,11 +1,7 @@ /* - * File : usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f40x/drivers/usart.h b/bsp/stm32f40x/drivers/usart.h index 3faf85fcde..12cfd253cf 100644 --- a/bsp/stm32f40x/drivers/usart.h +++ b/bsp/stm32f40x/drivers/usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f411-nucleo/applications/main.c b/bsp/stm32f411-nucleo/applications/main.c index ae855a5b1e..5be09a6aa6 100644 --- a/bsp/stm32f411-nucleo/applications/main.c +++ b/bsp/stm32f411-nucleo/applications/main.c @@ -1,11 +1,7 @@ /* - * File : main.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f411-nucleo/drivers/board.c b/bsp/stm32f411-nucleo/drivers/board.c index 008d6f5a78..0504dac9e3 100644 --- a/bsp/stm32f411-nucleo/drivers/board.c +++ b/bsp/stm32f411-nucleo/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f411-nucleo/drivers/board.h b/bsp/stm32f411-nucleo/drivers/board.h index 98460fd4e7..5aceadc899 100644 --- a/bsp/stm32f411-nucleo/drivers/board.h +++ b/bsp/stm32f411-nucleo/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f411-nucleo/drivers/drv_usart.h b/bsp/stm32f411-nucleo/drivers/drv_usart.h index ff08702d57..ecd3412ef8 100644 --- a/bsp/stm32f411-nucleo/drivers/drv_usart.h +++ b/bsp/stm32f411-nucleo/drivers/drv_usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/applications/application.c b/bsp/stm32f429-apollo/applications/application.c index 8d1f447ef6..8846e98a5e 100644 --- a/bsp/stm32f429-apollo/applications/application.c +++ b/bsp/stm32f429-apollo/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/applications/rtgui_demo.c b/bsp/stm32f429-apollo/applications/rtgui_demo.c index 9d6d34dafa..7db3945ef4 100644 --- a/bsp/stm32f429-apollo/applications/rtgui_demo.c +++ b/bsp/stm32f429-apollo/applications/rtgui_demo.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/applications/rtgui_demo.h b/bsp/stm32f429-apollo/applications/rtgui_demo.h index e27f7b5609..1662a4d346 100644 --- a/bsp/stm32f429-apollo/applications/rtgui_demo.h +++ b/bsp/stm32f429-apollo/applications/rtgui_demo.h @@ -1,11 +1,7 @@ /* - * File : dc.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/applications/startup.c b/bsp/stm32f429-apollo/applications/startup.c index 9e55b3bc40..5448f3f854 100644 --- a/bsp/stm32f429-apollo/applications/startup.c +++ b/bsp/stm32f429-apollo/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/board.c b/bsp/stm32f429-apollo/drivers/board.c index 9788ebc370..8943f91456 100644 --- a/bsp/stm32f429-apollo/drivers/board.c +++ b/bsp/stm32f429-apollo/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/board.h b/bsp/stm32f429-apollo/drivers/board.h index c733b88795..30f8fd6995 100644 --- a/bsp/stm32f429-apollo/drivers/board.h +++ b/bsp/stm32f429-apollo/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_eth.c b/bsp/stm32f429-apollo/drivers/drv_eth.c index 78e2342c0f..5d363194e3 100644 --- a/bsp/stm32f429-apollo/drivers/drv_eth.c +++ b/bsp/stm32f429-apollo/drivers/drv_eth.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_gpio.c b/bsp/stm32f429-apollo/drivers/drv_gpio.c index fe26d0027a..6f7edddffa 100644 --- a/bsp/stm32f429-apollo/drivers/drv_gpio.c +++ b/bsp/stm32f429-apollo/drivers/drv_gpio.c @@ -1,11 +1,7 @@ /* - * File : drv_gpio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_gpio.h b/bsp/stm32f429-apollo/drivers/drv_gpio.h index f263a87c2d..60199bd34b 100644 --- a/bsp/stm32f429-apollo/drivers/drv_gpio.h +++ b/bsp/stm32f429-apollo/drivers/drv_gpio.h @@ -1,11 +1,7 @@ /* - * File : drv_gpio.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_i2c.c b/bsp/stm32f429-apollo/drivers/drv_i2c.c index 38321e8b51..2f334ccea4 100644 --- a/bsp/stm32f429-apollo/drivers/drv_i2c.c +++ b/bsp/stm32f429-apollo/drivers/drv_i2c.c @@ -1,11 +1,7 @@ /* - * File : drv_i2c.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_i2c.h b/bsp/stm32f429-apollo/drivers/drv_i2c.h index 8e91be0e0e..e0c17f2f57 100644 --- a/bsp/stm32f429-apollo/drivers/drv_i2c.h +++ b/bsp/stm32f429-apollo/drivers/drv_i2c.h @@ -1,12 +1,8 @@ /* -* File : drv_i2c.h -* This file is part of RT-Thread RTOS -* COPYRIGHT (C) 2017 RT-Thread Develop Team -* -* The license and distribution terms for this file may be -* found in the file LICENSE in this distribution or at -* http://www.rt-thread.org/license/LICENSE -* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * * Change Logs: * Date Author Notes * 2017-06-05 tanek first implementation. diff --git a/bsp/stm32f429-apollo/drivers/drv_lcd.c b/bsp/stm32f429-apollo/drivers/drv_lcd.c index 2608081acf..0291d53c45 100644 --- a/bsp/stm32f429-apollo/drivers/drv_lcd.c +++ b/bsp/stm32f429-apollo/drivers/drv_lcd.c @@ -1,11 +1,7 @@ /* - * File : drv_lcd.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_nand.c b/bsp/stm32f429-apollo/drivers/drv_nand.c index d546bbd197..124515878b 100644 --- a/bsp/stm32f429-apollo/drivers/drv_nand.c +++ b/bsp/stm32f429-apollo/drivers/drv_nand.c @@ -1,11 +1,7 @@ /* - * File : drv_nand.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2008 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_pcf8574.c b/bsp/stm32f429-apollo/drivers/drv_pcf8574.c index 4801a92bc2..90f7793770 100644 --- a/bsp/stm32f429-apollo/drivers/drv_pcf8574.c +++ b/bsp/stm32f429-apollo/drivers/drv_pcf8574.c @@ -1,11 +1,7 @@ /* - * File : drv_iic.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_rtc.c b/bsp/stm32f429-apollo/drivers/drv_rtc.c index 3318606e8d..4da872d2d8 100644 --- a/bsp/stm32f429-apollo/drivers/drv_rtc.c +++ b/bsp/stm32f429-apollo/drivers/drv_rtc.c @@ -1,11 +1,7 @@ /* - * File : drv_rtc.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_rtc.h b/bsp/stm32f429-apollo/drivers/drv_rtc.h index 37b34540c1..558486428e 100644 --- a/bsp/stm32f429-apollo/drivers/drv_rtc.h +++ b/bsp/stm32f429-apollo/drivers/drv_rtc.h @@ -1,19 +1,13 @@ - /***************************************************************************//** - * @file drv_rtc.h - * @brief RTC driver of RT-Thread RTOS for EFM32 - * COPYRIGHT (C) 2012, RT-Thread Development Team - * @author Bernard, onelife - * @version 1.0 - ******************************************************************************* - * @section License - * The license and distribution terms for this file may be found in the file - * LICENSE in this distribution or at http://www.rt-thread.org/license/LICENSE - ******************************************************************************* - * @section Change Logs +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs * Date Author Notes * 2009-01-05 Bernard the first version * 2010-12-27 onelife Modification for EFM32 - *********************************************************************/ + */ #ifndef __DRV_RTC_H__ #define __DRV_RTC_H__ #include diff --git a/bsp/stm32f429-apollo/drivers/drv_sdram.c b/bsp/stm32f429-apollo/drivers/drv_sdram.c index c7f463c08e..f500184ca0 100644 --- a/bsp/stm32f429-apollo/drivers/drv_sdram.c +++ b/bsp/stm32f429-apollo/drivers/drv_sdram.c @@ -1,21 +1,7 @@ /* - * File : drv_sdram.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_sdram.h b/bsp/stm32f429-apollo/drivers/drv_sdram.h index 5cb3d128a6..73f29bf966 100644 --- a/bsp/stm32f429-apollo/drivers/drv_sdram.h +++ b/bsp/stm32f429-apollo/drivers/drv_sdram.h @@ -1,11 +1,7 @@ /* - * File : drv_sdram.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2016 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_spi.c b/bsp/stm32f429-apollo/drivers/drv_spi.c index a82454d907..578b6e3c66 100644 --- a/bsp/stm32f429-apollo/drivers/drv_spi.c +++ b/bsp/stm32f429-apollo/drivers/drv_spi.c @@ -1,11 +1,7 @@ /* - * File : drv_spi.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_spi.h b/bsp/stm32f429-apollo/drivers/drv_spi.h index 8c74fdb626..f6b9156628 100644 --- a/bsp/stm32f429-apollo/drivers/drv_spi.h +++ b/bsp/stm32f429-apollo/drivers/drv_spi.h @@ -1,11 +1,7 @@ /* - * File : stm32f20x_40x_spi.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/drv_spi_flash.c b/bsp/stm32f429-apollo/drivers/drv_spi_flash.c index f6c5748dac..a73e86179a 100644 --- a/bsp/stm32f429-apollo/drivers/drv_spi_flash.c +++ b/bsp/stm32f429-apollo/drivers/drv_spi_flash.c @@ -1,11 +1,7 @@ /* - * File : stm32f20x_40x_spi.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/usart.c b/bsp/stm32f429-apollo/drivers/usart.c index b6606e90f8..ecca8b7307 100644 --- a/bsp/stm32f429-apollo/drivers/usart.c +++ b/bsp/stm32f429-apollo/drivers/usart.c @@ -1,11 +1,7 @@ /* - * File : usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-apollo/drivers/usart.h b/bsp/stm32f429-apollo/drivers/usart.h index 3faf85fcde..12cfd253cf 100644 --- a/bsp/stm32f429-apollo/drivers/usart.h +++ b/bsp/stm32f429-apollo/drivers/usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/applications/application.c b/bsp/stm32f429-armfly/applications/application.c index c4752b0140..7a44930cef 100644 --- a/bsp/stm32f429-armfly/applications/application.c +++ b/bsp/stm32f429-armfly/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/applications/rtgui_demo.c b/bsp/stm32f429-armfly/applications/rtgui_demo.c index d4ef2dba44..a26fdfe0fd 100644 --- a/bsp/stm32f429-armfly/applications/rtgui_demo.c +++ b/bsp/stm32f429-armfly/applications/rtgui_demo.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/applications/rtgui_demo.h b/bsp/stm32f429-armfly/applications/rtgui_demo.h index e27f7b5609..1662a4d346 100644 --- a/bsp/stm32f429-armfly/applications/rtgui_demo.h +++ b/bsp/stm32f429-armfly/applications/rtgui_demo.h @@ -1,11 +1,7 @@ /* - * File : dc.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/applications/startup.c b/bsp/stm32f429-armfly/applications/startup.c index 63fa63123c..5d58727d82 100644 --- a/bsp/stm32f429-armfly/applications/startup.c +++ b/bsp/stm32f429-armfly/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/drivers/board.c b/bsp/stm32f429-armfly/drivers/board.c index d0a3cbf366..94ac6b5f50 100644 --- a/bsp/stm32f429-armfly/drivers/board.c +++ b/bsp/stm32f429-armfly/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/drivers/board.h b/bsp/stm32f429-armfly/drivers/board.h index 6c24b4b866..f9aeb2f508 100644 --- a/bsp/stm32f429-armfly/drivers/board.h +++ b/bsp/stm32f429-armfly/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/drivers/drv_eth.c b/bsp/stm32f429-armfly/drivers/drv_eth.c index b4bf070ab8..d7754d2183 100644 --- a/bsp/stm32f429-armfly/drivers/drv_eth.c +++ b/bsp/stm32f429-armfly/drivers/drv_eth.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/drivers/drv_ft5x06.c b/bsp/stm32f429-armfly/drivers/drv_ft5x06.c index 70be723c50..077ee84e23 100644 --- a/bsp/stm32f429-armfly/drivers/drv_ft5x06.c +++ b/bsp/stm32f429-armfly/drivers/drv_ft5x06.c @@ -1,21 +1,7 @@ /* - * File : drv_ft5x06.c - * ft5x06 touch driver - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/drivers/drv_i2c.c b/bsp/stm32f429-armfly/drivers/drv_i2c.c index d1ca48b017..f3d3796a3c 100644 --- a/bsp/stm32f429-armfly/drivers/drv_i2c.c +++ b/bsp/stm32f429-armfly/drivers/drv_i2c.c @@ -1,11 +1,7 @@ /* - * File : drv_iic.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/drivers/drv_lcd.c b/bsp/stm32f429-armfly/drivers/drv_lcd.c index df68ae8db7..96444d5b5f 100644 --- a/bsp/stm32f429-armfly/drivers/drv_lcd.c +++ b/bsp/stm32f429-armfly/drivers/drv_lcd.c @@ -1,11 +1,7 @@ /* - * File : usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/drivers/drv_sdram.c b/bsp/stm32f429-armfly/drivers/drv_sdram.c index 0b3c642728..0a9fa7e406 100644 --- a/bsp/stm32f429-armfly/drivers/drv_sdram.c +++ b/bsp/stm32f429-armfly/drivers/drv_sdram.c @@ -1,11 +1,7 @@ /* - * File : usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/drivers/drv_spi.c b/bsp/stm32f429-armfly/drivers/drv_spi.c index 6f439d6de7..e8ab90d032 100644 --- a/bsp/stm32f429-armfly/drivers/drv_spi.c +++ b/bsp/stm32f429-armfly/drivers/drv_spi.c @@ -1,11 +1,7 @@ /* - * File : drv_spi.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/drivers/drv_spi.h b/bsp/stm32f429-armfly/drivers/drv_spi.h index 17e3d3852c..e1cc65c645 100644 --- a/bsp/stm32f429-armfly/drivers/drv_spi.h +++ b/bsp/stm32f429-armfly/drivers/drv_spi.h @@ -1,11 +1,7 @@ /* - * File : stm32f20x_40x_spi.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/drivers/drv_spi_flash.c b/bsp/stm32f429-armfly/drivers/drv_spi_flash.c index 00b8cb75e0..ff6e75e7f5 100644 --- a/bsp/stm32f429-armfly/drivers/drv_spi_flash.c +++ b/bsp/stm32f429-armfly/drivers/drv_spi_flash.c @@ -1,11 +1,7 @@ /* - * File : stm32f20x_40x_spi.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/drivers/usart.c b/bsp/stm32f429-armfly/drivers/usart.c index b6606e90f8..ecca8b7307 100644 --- a/bsp/stm32f429-armfly/drivers/usart.c +++ b/bsp/stm32f429-armfly/drivers/usart.c @@ -1,11 +1,7 @@ /* - * File : usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f429-armfly/drivers/usart.h b/bsp/stm32f429-armfly/drivers/usart.h index 3faf85fcde..12cfd253cf 100644 --- a/bsp/stm32f429-armfly/drivers/usart.h +++ b/bsp/stm32f429-armfly/drivers/usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/applications/main.c b/bsp/stm32f4xx-HAL/applications/main.c index c9008d5a82..c68bad6501 100644 --- a/bsp/stm32f4xx-HAL/applications/main.c +++ b/bsp/stm32f4xx-HAL/applications/main.c @@ -1,11 +1,7 @@ /* - * File : main.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/board.c b/bsp/stm32f4xx-HAL/drivers/board.c index 99b868903a..b618bd36ee 100644 --- a/bsp/stm32f4xx-HAL/drivers/board.c +++ b/bsp/stm32f4xx-HAL/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/board.h b/bsp/stm32f4xx-HAL/drivers/board.h index 2b9fc4807f..fb46678a0d 100644 --- a/bsp/stm32f4xx-HAL/drivers/board.h +++ b/bsp/stm32f4xx-HAL/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_can.c b/bsp/stm32f4xx-HAL/drivers/drv_can.c index a5ef6def54..603a2a745b 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_can.c +++ b/bsp/stm32f4xx-HAL/drivers/drv_can.c @@ -1,21 +1,7 @@ /* - * File : drv_can.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_can.h b/bsp/stm32f4xx-HAL/drivers/drv_can.h index 14c0d3eb22..e8c24f1a73 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_can.h +++ b/bsp/stm32f4xx-HAL/drivers/drv_can.h @@ -1,11 +1,7 @@ /* - * File : drv_can.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_gpio.c b/bsp/stm32f4xx-HAL/drivers/drv_gpio.c index 702305d8fd..f000da5ede 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_gpio.c +++ b/bsp/stm32f4xx-HAL/drivers/drv_gpio.c @@ -1,11 +1,7 @@ /* - * File : drv_gpio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_gpio.h b/bsp/stm32f4xx-HAL/drivers/drv_gpio.h index 7928233b86..a258b78194 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_gpio.h +++ b/bsp/stm32f4xx-HAL/drivers/drv_gpio.h @@ -1,11 +1,7 @@ /* - * File : drv_gpio.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_i2c.c b/bsp/stm32f4xx-HAL/drivers/drv_i2c.c index 4cc04ae292..3109e95bd3 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_i2c.c +++ b/bsp/stm32f4xx-HAL/drivers/drv_i2c.c @@ -1,21 +1,7 @@ /* - * File : drv_i2c.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_i2c.h b/bsp/stm32f4xx-HAL/drivers/drv_i2c.h index 04c0b2b773..ba4004e316 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_i2c.h +++ b/bsp/stm32f4xx-HAL/drivers/drv_i2c.h @@ -1,21 +1,8 @@ /* - * File : drv_i2c.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team +/* + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_iwg.c b/bsp/stm32f4xx-HAL/drivers/drv_iwg.c index ecacad1445..25e955ca7f 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_iwg.c +++ b/bsp/stm32f4xx-HAL/drivers/drv_iwg.c @@ -1,11 +1,7 @@ /* - * File : drv_iwg.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_iwg.h b/bsp/stm32f4xx-HAL/drivers/drv_iwg.h index a2593efcea..566138b6f9 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_iwg.h +++ b/bsp/stm32f4xx-HAL/drivers/drv_iwg.h @@ -1,11 +1,7 @@ /* - * File : drv_iwg.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_pwm.c b/bsp/stm32f4xx-HAL/drivers/drv_pwm.c index d66d8feecb..58b611e04f 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_pwm.c +++ b/bsp/stm32f4xx-HAL/drivers/drv_pwm.c @@ -1,21 +1,7 @@ /* - * File : drv_pwm.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_rtc.c b/bsp/stm32f4xx-HAL/drivers/drv_rtc.c index 73bbf9d6cb..088c95f1c6 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_rtc.c +++ b/bsp/stm32f4xx-HAL/drivers/drv_rtc.c @@ -1,21 +1,7 @@ /* - * File : drv_rtc.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_rtc.h b/bsp/stm32f4xx-HAL/drivers/drv_rtc.h index 4e94ed1c42..f1b6d7f754 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_rtc.h +++ b/bsp/stm32f4xx-HAL/drivers/drv_rtc.h @@ -1,21 +1,7 @@ /* - * File : drv_rtc.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_spi.c b/bsp/stm32f4xx-HAL/drivers/drv_spi.c index 594383509a..0841ae1cd2 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_spi.c +++ b/bsp/stm32f4xx-HAL/drivers/drv_spi.c @@ -1,11 +1,7 @@ /* - * File : gpio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_spi.h b/bsp/stm32f4xx-HAL/drivers/drv_spi.h index 21cae8450e..7abba78b74 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_spi.h +++ b/bsp/stm32f4xx-HAL/drivers/drv_spi.h @@ -1,11 +1,7 @@ /* - * File : gpio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_spiflash.c b/bsp/stm32f4xx-HAL/drivers/drv_spiflash.c index cf30b949a6..4eaedb8991 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_spiflash.c +++ b/bsp/stm32f4xx-HAL/drivers/drv_spiflash.c @@ -1,11 +1,7 @@ /* - * File : gpio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_spiflash.h b/bsp/stm32f4xx-HAL/drivers/drv_spiflash.h index be546ffe81..8cacc38a9a 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_spiflash.h +++ b/bsp/stm32f4xx-HAL/drivers/drv_spiflash.h @@ -1,11 +1,7 @@ /* - * File : drv_spiflash.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_usart.h b/bsp/stm32f4xx-HAL/drivers/drv_usart.h index 1500bf07c2..c0bd8b3d98 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_usart.h +++ b/bsp/stm32f4xx-HAL/drivers/drv_usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_usbd.c b/bsp/stm32f4xx-HAL/drivers/drv_usbd.c index 7e0271e9dd..9f06e5167c 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_usbd.c +++ b/bsp/stm32f4xx-HAL/drivers/drv_usbd.c @@ -1,11 +1,7 @@ /* - * File : stm32_usbd.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_usbd.h b/bsp/stm32f4xx-HAL/drivers/drv_usbd.h index 0f748e1c6b..942f234062 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_usbd.h +++ b/bsp/stm32f4xx-HAL/drivers/drv_usbd.h @@ -1,11 +1,7 @@ /* - * File : stm32_usbd.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_usbh.c b/bsp/stm32f4xx-HAL/drivers/drv_usbh.c index d640f5a6c3..6065e06f8e 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_usbh.c +++ b/bsp/stm32f4xx-HAL/drivers/drv_usbh.c @@ -1,11 +1,7 @@ /* - * File : stm32_usbh.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f4xx-HAL/drivers/drv_usbh.h b/bsp/stm32f4xx-HAL/drivers/drv_usbh.h index 9c245555a3..8a7e0ff071 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_usbh.h +++ b/bsp/stm32f4xx-HAL/drivers/drv_usbh.h @@ -1,11 +1,7 @@ /* - * File : stm32_usbh.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f7-disco/applications/main.c b/bsp/stm32f7-disco/applications/main.c index a0b14aee41..6ac61f0e2c 100644 --- a/bsp/stm32f7-disco/applications/main.c +++ b/bsp/stm32f7-disco/applications/main.c @@ -1,21 +1,7 @@ /* - * File : main.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f7-disco/drivers/board.c b/bsp/stm32f7-disco/drivers/board.c index aee2db1d4b..c86025d292 100644 --- a/bsp/stm32f7-disco/drivers/board.c +++ b/bsp/stm32f7-disco/drivers/board.c @@ -1,21 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f7-disco/drivers/board.h b/bsp/stm32f7-disco/drivers/board.h index a7aef0d691..20e7290b94 100644 --- a/bsp/stm32f7-disco/drivers/board.h +++ b/bsp/stm32f7-disco/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f7-disco/drivers/drv_cache.c b/bsp/stm32f7-disco/drivers/drv_cache.c index 35216b6b7c..d5ac4eb441 100644 --- a/bsp/stm32f7-disco/drivers/drv_cache.c +++ b/bsp/stm32f7-disco/drivers/drv_cache.c @@ -1,21 +1,7 @@ /* - * File : drv_cache.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f7-disco/drivers/drv_mpu.c b/bsp/stm32f7-disco/drivers/drv_mpu.c index 825b82ff9d..09857d3cf5 100644 --- a/bsp/stm32f7-disco/drivers/drv_mpu.c +++ b/bsp/stm32f7-disco/drivers/drv_mpu.c @@ -1,21 +1,7 @@ /* - * File : drv_mpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f7-disco/drivers/drv_mpu.h b/bsp/stm32f7-disco/drivers/drv_mpu.h index 675be55ca4..8e2e4a699e 100644 --- a/bsp/stm32f7-disco/drivers/drv_mpu.h +++ b/bsp/stm32f7-disco/drivers/drv_mpu.h @@ -1,21 +1,7 @@ /* - * File : drv_mpu.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f7-disco/drivers/drv_sdram.c b/bsp/stm32f7-disco/drivers/drv_sdram.c index c141c26af2..b5afa0361d 100644 --- a/bsp/stm32f7-disco/drivers/drv_sdram.c +++ b/bsp/stm32f7-disco/drivers/drv_sdram.c @@ -1,21 +1,7 @@ /* - * File : drv_sdram.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f7-disco/drivers/drv_sdram.h b/bsp/stm32f7-disco/drivers/drv_sdram.h index f3b66e8d27..91b9cc2c9a 100644 --- a/bsp/stm32f7-disco/drivers/drv_sdram.h +++ b/bsp/stm32f7-disco/drivers/drv_sdram.h @@ -1,15 +1,12 @@ /* - * File : drv_sdram.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015 RT-Thread Develop Team +/* + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes - * 2015-08-03 xiaonong The first version for STM32F7 + * 2015-08-03 xiaonong The first version for STM32F7 */ #ifndef __DRV_SDRAM_H__ diff --git a/bsp/stm32f7-disco/drivers/drv_usart.c b/bsp/stm32f7-disco/drivers/drv_usart.c index 59471c9972..5d54d6903b 100644 --- a/bsp/stm32f7-disco/drivers/drv_usart.c +++ b/bsp/stm32f7-disco/drivers/drv_usart.c @@ -1,21 +1,7 @@ /* - * File : drv_usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32f7-disco/drivers/drv_usart.h b/bsp/stm32f7-disco/drivers/drv_usart.h index 184bffbefd..def63ebcae 100644 --- a/bsp/stm32f7-disco/drivers/drv_usart.h +++ b/bsp/stm32f7-disco/drivers/drv_usart.h @@ -1,21 +1,7 @@ /* - * File : drv_usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/applications/main.c b/bsp/stm32h743-nucleo/applications/main.c index 70fa484966..a41c241683 100644 --- a/bsp/stm32h743-nucleo/applications/main.c +++ b/bsp/stm32h743-nucleo/applications/main.c @@ -1,21 +1,7 @@ /* - * File : main.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/applications/sram.c b/bsp/stm32h743-nucleo/applications/sram.c index 3b38fd3053..8186a7e8a3 100644 --- a/bsp/stm32h743-nucleo/applications/sram.c +++ b/bsp/stm32h743-nucleo/applications/sram.c @@ -1,21 +1,7 @@ /* -* File : sram.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/applications/sram.h b/bsp/stm32h743-nucleo/applications/sram.h index 03c2b0a288..00d324afb5 100644 --- a/bsp/stm32h743-nucleo/applications/sram.h +++ b/bsp/stm32h743-nucleo/applications/sram.h @@ -1,11 +1,7 @@ /* - * File : sram.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/drivers/board.c b/bsp/stm32h743-nucleo/drivers/board.c index 26635ff277..ee9310e14c 100644 --- a/bsp/stm32h743-nucleo/drivers/board.c +++ b/bsp/stm32h743-nucleo/drivers/board.c @@ -1,21 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/drivers/board.h b/bsp/stm32h743-nucleo/drivers/board.h index 6a597b6b09..da8f6d155b 100644 --- a/bsp/stm32h743-nucleo/drivers/board.h +++ b/bsp/stm32h743-nucleo/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/drivers/drv_led.c b/bsp/stm32h743-nucleo/drivers/drv_led.c index a859be3eeb..b4d164d2d5 100644 --- a/bsp/stm32h743-nucleo/drivers/drv_led.c +++ b/bsp/stm32h743-nucleo/drivers/drv_led.c @@ -1,21 +1,7 @@ /* - * File : drv_led.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/drivers/drv_led.h b/bsp/stm32h743-nucleo/drivers/drv_led.h index bf8fd3e48b..5758b559a9 100644 --- a/bsp/stm32h743-nucleo/drivers/drv_led.h +++ b/bsp/stm32h743-nucleo/drivers/drv_led.h @@ -1,11 +1,7 @@ /* - * File : drv_led.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/drivers/drv_mpu.c b/bsp/stm32h743-nucleo/drivers/drv_mpu.c index 1f091a8e7f..9b25f36d59 100644 --- a/bsp/stm32h743-nucleo/drivers/drv_mpu.c +++ b/bsp/stm32h743-nucleo/drivers/drv_mpu.c @@ -1,21 +1,7 @@ /* - * File : drv_mpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/drivers/drv_mpu.h b/bsp/stm32h743-nucleo/drivers/drv_mpu.h index 2f06d4ce23..4a0cc43674 100644 --- a/bsp/stm32h743-nucleo/drivers/drv_mpu.h +++ b/bsp/stm32h743-nucleo/drivers/drv_mpu.h @@ -1,11 +1,7 @@ /* - * File : drv_mpu.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/drivers/drv_usart.c b/bsp/stm32h743-nucleo/drivers/drv_usart.c index ec18809c77..e8620b65ee 100644 --- a/bsp/stm32h743-nucleo/drivers/drv_usart.c +++ b/bsp/stm32h743-nucleo/drivers/drv_usart.c @@ -1,21 +1,7 @@ /* - * File : drv_usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/drivers/drv_usart.h b/bsp/stm32h743-nucleo/drivers/drv_usart.h index fcf01177bb..75f83ffe93 100644 --- a/bsp/stm32h743-nucleo/drivers/drv_usart.h +++ b/bsp/stm32h743-nucleo/drivers/drv_usart.h @@ -1,11 +1,7 @@ /* - * File : drv_usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/drivers/lan8742a.c b/bsp/stm32h743-nucleo/drivers/lan8742a.c index 4e6a71f3ef..8624b7f0bd 100644 --- a/bsp/stm32h743-nucleo/drivers/lan8742a.c +++ b/bsp/stm32h743-nucleo/drivers/lan8742a.c @@ -1,21 +1,7 @@ /* - * File : drv_mpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32h743-nucleo/drivers/lan8742a.h b/bsp/stm32h743-nucleo/drivers/lan8742a.h index 56d6fbf160..c0c14ab332 100644 --- a/bsp/stm32h743-nucleo/drivers/lan8742a.h +++ b/bsp/stm32h743-nucleo/drivers/lan8742a.h @@ -1,11 +1,7 @@ /* - * File : lan8742a.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l072/app/application.c b/bsp/stm32l072/app/application.c index f0e9932a65..aad725735e 100644 --- a/bsp/stm32l072/app/application.c +++ b/bsp/stm32l072/app/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l072/app/startup.c b/bsp/stm32l072/app/startup.c index 9373bdcf96..b1342f76d9 100644 --- a/bsp/stm32l072/app/startup.c +++ b/bsp/stm32l072/app/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l072/board/board.c b/bsp/stm32l072/board/board.c index 37f96c586b..923af2e8b9 100644 --- a/bsp/stm32l072/board/board.c +++ b/bsp/stm32l072/board/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l072/board/board.h b/bsp/stm32l072/board/board.h index 5e97446610..be00344b8f 100644 --- a/bsp/stm32l072/board/board.h +++ b/bsp/stm32l072/board/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l072/board/drv_spi.c b/bsp/stm32l072/board/drv_spi.c index ac1311937d..b963629024 100644 --- a/bsp/stm32l072/board/drv_spi.c +++ b/bsp/stm32l072/board/drv_spi.c @@ -1,11 +1,7 @@ /* - * File : drv_spi.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l072/board/gpio.c b/bsp/stm32l072/board/gpio.c index 30295eff18..da5660e3f3 100644 --- a/bsp/stm32l072/board/gpio.c +++ b/bsp/stm32l072/board/gpio.c @@ -1,11 +1,7 @@ /* - * File : gpio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l072/board/usart.c b/bsp/stm32l072/board/usart.c index a3880c8250..9b016cefe1 100644 --- a/bsp/stm32l072/board/usart.c +++ b/bsp/stm32l072/board/usart.c @@ -1,11 +1,7 @@ /* - * File : usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l072/board/usart.h b/bsp/stm32l072/board/usart.h index ffc55552b3..cb48abde4b 100644 --- a/bsp/stm32l072/board/usart.h +++ b/bsp/stm32l072/board/usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l475-iot-disco/applications/application.c b/bsp/stm32l475-iot-disco/applications/application.c index b66b0dd93e..871e843f16 100644 --- a/bsp/stm32l475-iot-disco/applications/application.c +++ b/bsp/stm32l475-iot-disco/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l475-iot-disco/applications/startup.c b/bsp/stm32l475-iot-disco/applications/startup.c index f1e3c185bb..f726f8d854 100644 --- a/bsp/stm32l475-iot-disco/applications/startup.c +++ b/bsp/stm32l475-iot-disco/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l475-iot-disco/drivers/board.c b/bsp/stm32l475-iot-disco/drivers/board.c index 5164ca564c..689f45b3f5 100644 --- a/bsp/stm32l475-iot-disco/drivers/board.c +++ b/bsp/stm32l475-iot-disco/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l475-iot-disco/drivers/board.h b/bsp/stm32l475-iot-disco/drivers/board.h index b733e58d12..65fd35f9d1 100644 --- a/bsp/stm32l475-iot-disco/drivers/board.h +++ b/bsp/stm32l475-iot-disco/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l475-iot-disco/drivers/usart.c b/bsp/stm32l475-iot-disco/drivers/usart.c index febe9545a6..fa5a68e7cb 100644 --- a/bsp/stm32l475-iot-disco/drivers/usart.c +++ b/bsp/stm32l475-iot-disco/drivers/usart.c @@ -1,11 +1,7 @@ /* - * File : usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l475-iot-disco/drivers/usart.h b/bsp/stm32l475-iot-disco/drivers/usart.h index 3faf85fcde..12cfd253cf 100644 --- a/bsp/stm32l475-iot-disco/drivers/usart.h +++ b/bsp/stm32l475-iot-disco/drivers/usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l476-nucleo/applications/main.c b/bsp/stm32l476-nucleo/applications/main.c index 5f289cf43d..d62b7bff68 100644 --- a/bsp/stm32l476-nucleo/applications/main.c +++ b/bsp/stm32l476-nucleo/applications/main.c @@ -1,21 +1,7 @@ /* - * File : main.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l476-nucleo/drivers/board.c b/bsp/stm32l476-nucleo/drivers/board.c index 063e5806ff..4c5d7d8313 100644 --- a/bsp/stm32l476-nucleo/drivers/board.c +++ b/bsp/stm32l476-nucleo/drivers/board.c @@ -1,21 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l476-nucleo/drivers/board.h b/bsp/stm32l476-nucleo/drivers/board.h index 1578052089..dee99dd053 100644 --- a/bsp/stm32l476-nucleo/drivers/board.h +++ b/bsp/stm32l476-nucleo/drivers/board.h @@ -1,21 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l476-nucleo/drivers/drv_gpio.c b/bsp/stm32l476-nucleo/drivers/drv_gpio.c index 92b4697dd1..7ebe789cd6 100644 --- a/bsp/stm32l476-nucleo/drivers/drv_gpio.c +++ b/bsp/stm32l476-nucleo/drivers/drv_gpio.c @@ -1,21 +1,7 @@ /* - * File : drv_gpio.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l476-nucleo/drivers/drv_gpio.h b/bsp/stm32l476-nucleo/drivers/drv_gpio.h index e8b3dae79e..90ded72340 100644 --- a/bsp/stm32l476-nucleo/drivers/drv_gpio.h +++ b/bsp/stm32l476-nucleo/drivers/drv_gpio.h @@ -1,11 +1,7 @@ /* - * File : drv_gpio.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/stm32l476-nucleo/drivers/drv_usart.h b/bsp/stm32l476-nucleo/drivers/drv_usart.h index 7fc3172209..fd1f519abc 100644 --- a/bsp/stm32l476-nucleo/drivers/drv_usart.h +++ b/bsp/stm32l476-nucleo/drivers/drv_usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes From 8107542d761489dd7c3046af7af24b94d5d03b49 Mon Sep 17 00:00:00 2001 From: XXXXzzzz000 <119524428@qq.com> Date: Wed, 17 Oct 2018 15:54:00 +0800 Subject: [PATCH 19/31] =?UTF-8?q?[driver][iwdg]add=20iwdg=20driver.=20|=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0iwdg=E9=A9=B1=E5=8A=A8,=E5=8F=82=E8=80=83:stm?= =?UTF-8?q?32f4xx-HAL/driver=5Fwdg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/stm32f10x-HAL/Kconfig | 11 +++ bsp/stm32f10x-HAL/drivers/drv_iwg.c | 71 +++++++++++++++++++ bsp/stm32f10x-HAL/drivers/drv_iwg.h | 18 +++++ .../drivers/stm32f1xx_hal_conf.h | 2 +- 4 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 bsp/stm32f10x-HAL/drivers/drv_iwg.c create mode 100644 bsp/stm32f10x-HAL/drivers/drv_iwg.h diff --git a/bsp/stm32f10x-HAL/Kconfig b/bsp/stm32f10x-HAL/Kconfig index 534e930ba8..0276d0aa6c 100644 --- a/bsp/stm32f10x-HAL/Kconfig +++ b/bsp/stm32f10x-HAL/Kconfig @@ -182,6 +182,17 @@ if RT_USING_SPI default n endif + +menuconfig BSP_USING_WDT + bool "Using wdt" + select RT_USING_WDT + default n +if BSP_USING_WDT + config BSP_USING_WDT_IWDG + bool "Enable iwdg" + default n +endif + if RT_USING_DEVICE_IPC && (STM32F103RC || STM32F103RD || STM32F103RE || STM32F103RF || STM32F103RG ||STM32F103VC || STM32F103VD || STM32F103VE || STM32F103VF || STM32F103VG ||STM32F103ZC || STM32F103ZD || STM32F103ZE || STM32F103ZF || STM32F103ZG) config RT_USING_SDCARD bool "Using sdcard with sdio" diff --git a/bsp/stm32f10x-HAL/drivers/drv_iwg.c b/bsp/stm32f10x-HAL/drivers/drv_iwg.c new file mode 100644 index 0000000000..1d170b2df0 --- /dev/null +++ b/bsp/stm32f10x-HAL/drivers/drv_iwg.c @@ -0,0 +1,71 @@ +/* + * File : drv_iwg.c + * This file is part of RT-Thread RTOS + * COPYRIGHT (C) 2015, RT-Thread Development Team + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rt-thread.org/license/LICENSE + * + * Change Logs: + * Date Author Notes + * 2017-11-08 ZYH the first version + */ + +#include +#include +#include +#include + + +#ifdef RT_USING_WDT +IWDG_HandleTypeDef hiwdg; +static rt_err_t drv_init(rt_watchdog_t *wdt) +{ + hiwdg.Instance = IWDG; + hiwdg.Init.Prescaler = IWDG_PRESCALER_16; //1s + hiwdg.Init.Reload = 4095; + if (HAL_IWDG_Init(&hiwdg) != HAL_OK) + { + RT_ASSERT(0); + } + return RT_EOK; +} + +static rt_err_t drv_control(rt_watchdog_t *wdt, int cmd, void *arg) +{ + switch (cmd) + { + case RT_DEVICE_CTRL_WDT_SET_TIMEOUT: + hiwdg.Init.Reload = (rt_uint32_t)arg; + if (HAL_IWDG_Init(&hiwdg) != HAL_OK) + { + return RT_ERROR; + } + break; + case RT_DEVICE_CTRL_WDT_KEEPALIVE: + HAL_IWDG_Refresh(&hiwdg); + break; + default: + return RT_ERROR; + } + return RT_EOK; +} + +static struct rt_watchdog_ops _ops = + { + drv_init, + drv_control + }; + +static rt_watchdog_t _iwg = + { + .ops = &_ops + }; + +int rt_iwg_init(void) +{ + return rt_hw_watchdog_register(&_iwg, "iwg", RT_DEVICE_FLAG_DEACTIVATE, RT_NULL); +} +INIT_BOARD_EXPORT(rt_iwg_init); +#endif diff --git a/bsp/stm32f10x-HAL/drivers/drv_iwg.h b/bsp/stm32f10x-HAL/drivers/drv_iwg.h new file mode 100644 index 0000000000..4bd63a6ca9 --- /dev/null +++ b/bsp/stm32f10x-HAL/drivers/drv_iwg.h @@ -0,0 +1,18 @@ +/* + * File : drv_iwg.h + * This file is part of RT-Thread RTOS + * COPYRIGHT (C) 2015, RT-Thread Development Team + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rt-thread.org/license/LICENSE + * + * Change Logs: + * Date Author Notes + * 2017-11-08 ZYH the first version + */ + +#ifndef __DRV_IWG_H__ +#define __DRV_IWG_H__ +extern int rt_iwg_init(void); +#endif diff --git a/bsp/stm32f10x-HAL/drivers/stm32f1xx_hal_conf.h b/bsp/stm32f10x-HAL/drivers/stm32f1xx_hal_conf.h index 32be5f38d0..fa7d6cbf62 100644 --- a/bsp/stm32f10x-HAL/drivers/stm32f1xx_hal_conf.h +++ b/bsp/stm32f10x-HAL/drivers/stm32f1xx_hal_conf.h @@ -70,7 +70,7 @@ extern "C" { // #define HAL_I2C_MODULE_ENABLED // #define HAL_I2S_MODULE_ENABLED // #define HAL_IRDA_MODULE_ENABLED -// #define HAL_IWDG_MODULE_ENABLED +#define HAL_IWDG_MODULE_ENABLED // #define HAL_NAND_MODULE_ENABLED // #define HAL_NOR_MODULE_ENABLED // #define HAL_PCCARD_MODULE_ENABLED From 5e95c574566adfd5512759b4f185121f84c6e58e Mon Sep 17 00:00:00 2001 From: XXXXzzzz000 <119524428@qq.com> Date: Wed, 17 Oct 2018 16:05:33 +0800 Subject: [PATCH 20/31] add iwdg driver --- bsp/stm32f10x-HAL/drivers/SConscript | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bsp/stm32f10x-HAL/drivers/SConscript b/bsp/stm32f10x-HAL/drivers/SConscript index 43c9b3f4a0..feb72bed10 100644 --- a/bsp/stm32f10x-HAL/drivers/SConscript +++ b/bsp/stm32f10x-HAL/drivers/SConscript @@ -23,6 +23,9 @@ if GetDepend(['RT_USING_SDCARD']): if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']): src += ['drv_i2c.c'] +if GetDepend(['RT_USING_WDT']): + src += ['drv_iwg.c'] + if rtconfig.CROSS_TOOL == 'gcc': src += ['gcc_startup.s'] From e05cdc69a0e95b2262a4bb01ed7915c3d33af3ff Mon Sep 17 00:00:00 2001 From: tangyuxin <462747508@qq.com> Date: Wed, 17 Oct 2018 17:44:32 +0800 Subject: [PATCH 21/31] [components][net] dhcpd Support LWIP2.0 and LWIP1.4 --- components/net/lwip_dhcpd/dhcp_server.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/net/lwip_dhcpd/dhcp_server.c b/components/net/lwip_dhcpd/dhcp_server.c index 47717fb894..3f0e7a6daf 100644 --- a/components/net/lwip_dhcpd/dhcp_server.c +++ b/components/net/lwip_dhcpd/dhcp_server.c @@ -222,11 +222,12 @@ static void dhcpd_thread_entry(void *parameter) { #if (LWIP_VERSION) >= 0x02000000U ip4_addr_t addr; + ip4addr_aton(DHCPD_SERVER_IP, &addr); #else struct ip_addr addr; + ipaddr_aton(DHCPD_SERVER_IP, &addr); #endif /* LWIP_VERSION */ - ip4addr_aton(DHCPD_SERVER_IP, &addr); DHCPD_SERVER_IPADDR0 = (ntohl(addr.addr) >> 24) & 0xFF; DHCPD_SERVER_IPADDR1 = (ntohl(addr.addr) >> 16) & 0xFF; DHCPD_SERVER_IPADDR2 = (ntohl(addr.addr) >> 8) & 0xFF; From 1e0e221dd7354a64ad00369dc15b8135baf7511a Mon Sep 17 00:00:00 2001 From: tangyuxin <462747508@qq.com> Date: Thu, 18 Oct 2018 14:19:32 +0800 Subject: [PATCH 22/31] =?UTF-8?q?[components][wlan]=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9F=90=E4=BA=9B=E6=83=85=E5=86=B5=E4=B8=8B=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E4=B8=A4=E9=81=8D=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/drivers/wlan/wlan_mgnt.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/components/drivers/wlan/wlan_mgnt.c b/components/drivers/wlan/wlan_mgnt.c index c8f190239c..1d0b0c4aa7 100644 --- a/components/drivers/wlan/wlan_mgnt.c +++ b/components/drivers/wlan/wlan_mgnt.c @@ -495,7 +495,7 @@ static void rt_wlan_event_dispatch(struct rt_wlan_device *device, rt_wlan_dev_ev { user_buff = *buff; } - /* äº‹ä»¶å¤„ç† */ + /* Event Handle */ switch (event) { case RT_WLAN_DEV_EVT_CONNECT: @@ -737,9 +737,12 @@ rt_err_t rt_wlan_set_mode(const char *dev_name, rt_wlan_mode_t mode) RT_WLAN_LOG_E("not find device, set mode failed! name:%s", dev_name); return -RT_EIO; } + + MGNT_LOCK(); if (RT_WLAN_DEVICE(device)->mode == mode) { RT_WLAN_LOG_D("L:%d this device mode is set"); + MGNT_UNLOCK(); return RT_EOK; } @@ -747,19 +750,21 @@ rt_err_t rt_wlan_set_mode(const char *dev_name, rt_wlan_mode_t mode) (RT_WLAN_DEVICE(device)->flags & RT_WLAN_FLAG_AP_ONLY)) { RT_WLAN_LOG_I("this device ap mode only"); + MGNT_UNLOCK(); return -RT_ERROR; } else if ((mode == RT_WLAN_AP) && (RT_WLAN_DEVICE(device)->flags & RT_WLAN_FLAG_STA_ONLY)) { RT_WLAN_LOG_I("this device sta mode only"); + MGNT_UNLOCK(); return -RT_ERROR; } + /* * device == sta and change to ap, should deinit * device == ap and change to sta, should deinit */ - MGNT_LOCK(); if (((mode == RT_WLAN_STATION) && (RT_WLAN_DEVICE(device) == AP_DEVICE())) || ((mode == RT_WLAN_AP) && (RT_WLAN_DEVICE(device) == STA_DEVICE()))) { @@ -1627,12 +1632,12 @@ struct rt_wlan_scan_result *rt_wlan_scan_with_info(struct rt_wlan_info *info) return &scan_result; } - /* run scna */ + /* run scan */ err = rt_wlan_dev_scan(STA_DEVICE(), info); if (err != RT_EOK) { rt_wlan_complete_delete(complete); - RT_WLAN_LOG_E("scna sync fail"); + RT_WLAN_LOG_E("scan sync fail"); MGNT_UNLOCK(); return RT_NULL; } @@ -1646,7 +1651,7 @@ struct rt_wlan_scan_result *rt_wlan_scan_with_info(struct rt_wlan_info *info) set = 0x1 << RT_WLAN_DEV_EVT_SCAN_DONE; if (!(recved & set)) { - RT_WLAN_LOG_E("scna wait timeout!"); + RT_WLAN_LOG_E("scan wait timeout!"); MGNT_UNLOCK(); return &scan_result; } From a7956e5ec93ede202b4fdb6cedec0012e6eec839 Mon Sep 17 00:00:00 2001 From: tangyuxin <462747508@qq.com> Date: Thu, 18 Oct 2018 14:24:15 +0800 Subject: [PATCH 23/31] =?UTF-8?q?[components][wlan]=20=E5=85=BC=E5=AE=B9lw?= =?UTF-8?q?ip1.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/drivers/wlan/wlan_lwip.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/components/drivers/wlan/wlan_lwip.c b/components/drivers/wlan/wlan_lwip.c index 73c2eebafe..ec6ca23845 100644 --- a/components/drivers/wlan/wlan_lwip.c +++ b/components/drivers/wlan/wlan_lwip.c @@ -31,6 +31,10 @@ #define DBG_COLOR #include +#ifndef IPADDR_STRLEN_MAX +#define IPADDR_STRLEN_MAX (32) +#endif + struct lwip_prot_des { struct rt_wlan_prot prot; @@ -46,10 +50,10 @@ static void netif_is_ready(struct rt_work *work, void *parameter) struct rt_wlan_device *wlan = parameter; struct lwip_prot_des *lwip_prot = (struct lwip_prot_des *)wlan->prot; struct eth_device *eth_dev = &lwip_prot->eth; - char str[IP4ADDR_STRLEN_MAX]; rt_base_t level; struct rt_wlan_buff buff; rt_uint32_t ip_addr[4]; + char str[IPADDR_STRLEN_MAX]; rt_timer_stop(&lwip_prot->timer); if (ip_addr_cmp(&(eth_dev->netif->ip_addr), &ip_addr_zero) != 0) @@ -91,9 +95,9 @@ static void netif_is_ready(struct rt_work *work, void *parameter) rt_timer_start(&lwip_prot->timer); goto exit; } - rt_memset(str, 0, IP4ADDR_STRLEN_MAX); + rt_memset(str, 0, IPADDR_STRLEN_MAX); rt_enter_critical(); - rt_memcpy(str, ipaddr_ntoa(&(eth_dev->netif->ip_addr)), IP4ADDR_STRLEN_MAX); + rt_memcpy(str, ipaddr_ntoa(&(eth_dev->netif->ip_addr)), IPADDR_STRLEN_MAX); rt_exit_critical(); LOG_I("Got IP address : %s", str); exit: @@ -136,7 +140,7 @@ static void netif_set_connected(void *parameter) if (wlan->mode == RT_WLAN_STATION) { LOG_D("F:%s L:%d dhcp start run", __FUNCTION__, __LINE__); - netifapi_netif_set_link_up(eth_dev->netif); + netifapi_netif_common(eth_dev->netif, netif_set_link_up, NULL); #ifdef RT_LWIP_DHCP dhcp_start(eth_dev->netif); #endif @@ -146,7 +150,7 @@ static void netif_set_connected(void *parameter) { LOG_D("F:%s L:%d dhcpd start run", __FUNCTION__, __LINE__); - netifapi_netif_set_link_up(eth_dev->netif); + netifapi_netif_common(eth_dev->netif, netif_set_link_up, NULL); #ifdef LWIP_USING_DHCPD { char netif_name[8]; @@ -167,10 +171,10 @@ static void netif_set_connected(void *parameter) if (wlan->mode == RT_WLAN_STATION) { LOG_D("F:%s L:%d dhcp stop run", __FUNCTION__, __LINE__); - netifapi_netif_set_link_down(eth_dev->netif); + netifapi_netif_common(eth_dev->netif, netif_set_link_down, NULL); #ifdef RT_LWIP_DHCP { - ip4_addr_t ip_addr = { 0 }; + ip_addr_t ip_addr = { 0 }; dhcp_stop(eth_dev->netif); netif_set_addr(eth_dev->netif, &ip_addr, &ip_addr, &ip_addr); } @@ -180,7 +184,7 @@ static void netif_set_connected(void *parameter) else if (wlan->mode == RT_WLAN_AP) { LOG_D("F:%s L:%d dhcpd stop run", __FUNCTION__, __LINE__); - netifapi_netif_set_link_down(eth_dev->netif); + netifapi_netif_common(eth_dev->netif, netif_set_link_down, NULL); } } } @@ -438,6 +442,7 @@ static struct rt_wlan_prot *rt_wlan_lwip_protocol_register(struct rt_wlan_prot * rt_timer_init(&lwip_prot->timer, timer_name, timer_callback, wlan, rt_tick_from_millisecond(1000), RT_TIMER_FLAG_SOFT_TIMER | RT_TIMER_FLAG_ONE_SHOT); } + netif_set_up(eth->netif); LOG_I("eth device init ok name:%s", eth_name); return &lwip_prot->prot; From a6b51ada1eb1b3d869e55cb7b1901bdde694752f Mon Sep 17 00:00:00 2001 From: slyant Date: Thu, 18 Oct 2018 21:01:27 +0800 Subject: [PATCH 24/31] =?UTF-8?q?=E4=BF=AE=E6=94=B9at=5Fclient.c=20?= =?UTF-8?q?=E4=BC=A0=E5=85=A5=E5=8F=82=E6=95=B0timeout=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E6=98=AFms,=E6=AD=A4=E5=A4=84=E9=9C=80=E8=A6=81=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E4=B8=BAtick?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/net/at/src/at_client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/net/at/src/at_client.c b/components/net/at/src/at_client.c index 9cdc7ec3d1..1f6ed66743 100644 --- a/components/net/at/src/at_client.c +++ b/components/net/at/src/at_client.c @@ -363,7 +363,7 @@ int at_client_obj_wait_connect(at_client_t client, rt_uint32_t timeout) while (1) { /* Check whether it is timeout */ - if (rt_tick_get() - start_time > timeout) + if (rt_tick_get() - start_time > rt_tick_from_millisecond(timeout)) { LOG_E("wait connect timeout (%d millisecond)!", timeout); result = -RT_ETIMEOUT; From 262d4268a4f479de4d989481af26311ee84f0abf Mon Sep 17 00:00:00 2001 From: XXXXzzzz000 <119524428@qq.com> Date: Sat, 20 Oct 2018 17:53:07 +0800 Subject: [PATCH 25/31] [bsp][stm32f4xx-HAL] fix iwg driver. --- bsp/stm32f4xx-HAL/drivers/drv_iwg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bsp/stm32f4xx-HAL/drivers/drv_iwg.c b/bsp/stm32f4xx-HAL/drivers/drv_iwg.c index 25e955ca7f..feda1f3e34 100644 --- a/bsp/stm32f4xx-HAL/drivers/drv_iwg.c +++ b/bsp/stm32f4xx-HAL/drivers/drv_iwg.c @@ -32,7 +32,7 @@ static rt_err_t drv_control(rt_watchdog_t *wdt, int cmd, void *arg) switch (cmd) { case RT_DEVICE_CTRL_WDT_SET_TIMEOUT: - hiwdg.Init.Reload = (rt_uint32_t)arg; + hiwdg.Init.Reload = (rt_uint32_t)*arg; if (HAL_IWDG_Init(&hiwdg) != HAL_OK) { return RT_ERROR; From 9c2f2e855ba88824d7a7227c20be2c8854b88cfd Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Sun, 21 Oct 2018 14:45:29 +0800 Subject: [PATCH 26/31] [BSP][IMXRT] change license to Apache license v2.0 --- .../Libraries/imxrt1050/drivers/drv_cache.c | 8 ++----- .../Libraries/imxrt1050/drivers/drv_codec.c | 8 +++++++ .../Libraries/imxrt1050/drivers/drv_codec.h | 17 +++++++------- .../Libraries/imxrt1050/drivers/drv_eth.c | 8 ++----- .../imxrt1050/drivers/drv_eth_fire.c | 8 ++----- .../Libraries/imxrt1050/drivers/drv_ft5406.c | 18 ++------------- .../Libraries/imxrt1050/drivers/drv_hwtimer.c | 22 ++++--------------- .../Libraries/imxrt1050/drivers/drv_hwtimer.h | 22 ++++--------------- .../Libraries/imxrt1050/drivers/drv_i2c.c | 17 ++------------ .../Libraries/imxrt1050/drivers/drv_i2c.h | 8 ++----- .../Libraries/imxrt1050/drivers/drv_lcd.c | 8 ++----- .../Libraries/imxrt1050/drivers/drv_lcd.h | 8 ++----- .../Libraries/imxrt1050/drivers/drv_pcf8574.c | 8 ++----- .../Libraries/imxrt1050/drivers/drv_pcf8574.h | 8 ++----- .../Libraries/imxrt1050/drivers/drv_pin.c | 8 ++----- .../Libraries/imxrt1050/drivers/drv_pin.h | 8 ++----- .../Libraries/imxrt1050/drivers/drv_rtc.c | 8 ++----- .../Libraries/imxrt1050/drivers/drv_rtc.h | 8 ++----- .../Libraries/imxrt1050/drivers/drv_sdio.c | 18 ++------------- .../Libraries/imxrt1050/drivers/drv_sdram.c | 8 ++----- .../Libraries/imxrt1050/drivers/drv_spi_bus.c | 8 ++----- .../Libraries/imxrt1050/drivers/drv_spi_bus.h | 8 ++----- .../imxrt1050/drivers/drv_spi_flash.c | 8 ++----- .../imxrt1050/drivers/drv_spi_flash.h | 8 ++----- .../Libraries/imxrt1050/drivers/drv_uart.c | 11 ++-------- .../Libraries/imxrt1050/drivers/drv_uart.h | 12 +++------- .../Libraries/imxrt1050/drivers/drv_usbd.c | 8 ++----- 27 files changed, 71 insertions(+), 218 deletions(-) diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_cache.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_cache.c index 5cc68c50dc..4f88e769c4 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_cache.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_cache.c @@ -1,11 +1,7 @@ /* - * File : drv_cache.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_codec.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_codec.c index fe1924fed4..8d5d657f18 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_codec.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_codec.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include #include diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_codec.h b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_codec.h index 6ee6c354e9..4fd3869e53 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_codec.h +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_codec.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __DRV_CODEC_H__ #define __DRV_CODEC_H__ @@ -58,7 +66,6 @@ #define ADC_OVERRUN_IRQ_EN 1 #define ADC_FIFO_FLUSH 0 - /*DAC_MIXER_CTRL: 0x20*/ #define DAC_AG_R_EN 31 /* dac right enable bit */ #define DAC_AG_L_EN 30 /* dac left enable bit */ @@ -154,8 +161,6 @@ #define ADDA_PR_RDAT 0 - -/* 时钟é…置相关寄存器 */ #define R6_REG_CCU_BASE 0x01c20000 #define R6_REG_PLL_AUDIO_CTRL (R6_REG_CCU_BASE + 0x008) #define R6_REG_BUS_CLK_GATING_0 (R6_REG_CCU_BASE + 0x060) @@ -166,7 +171,6 @@ #define R6_REG_BUS_SOFT_RST_1 (R6_REG_CCU_BASE + 0x02C4) #define R6_REG_BUS_SOFT_RST_2 (R6_REG_CCU_BASE + 0x02D0) -/* GPIOé…置相关寄存器 */ #define R6_REG_PIO_BASE 0x01c20800 #define R6_REG_PD_CFG0 (R6_REG_PIO_BASE + (3 * 0x24 + 0X00)) #define R6_REG_PD_CFG1 (R6_REG_PIO_BASE + (3 * 0x24 + 0X04)) @@ -178,8 +182,6 @@ #define R6_REG_PD_PUL0 (R6_REG_PIO_BASE + (3 * 0x24 + 0X1c)) #define R6_REG_PD_PUL1 (R6_REG_PIO_BASE + (3 * 0x24 + 0X20)) - -/* AUDIOé…置相关寄存器 */ #define R6_REG_AC_BASE 0x01c23c00 #define R6_REG_AC_DAC_DPC (R6_REG_AC_BASE + 0x00) #define R6_REG_AC_DAC_FIFOC (R6_REG_AC_BASE + 0x04) @@ -192,7 +194,6 @@ #define R6_REG_ADC_MIXER_CTRL (R6_REG_AC_BASE + 0x24) #define R6_REG_AC_DAC_CNT (R6_REG_AC_BASE + 0x40) -/* DMAé…置相关寄存器 */ #define R6_REG_NDMA_0_BASE (0x01c02000 + 0x100 + 0 * 0x20) #define R6_REG_DMA_INT_CTRL (0x01c02000 + 0x00) @@ -202,8 +203,6 @@ #define REG_NDMA_SRC_ADR (0x4) #define REG_NDMA_DES_ADR (0x8) #define REG_NDMA_BYTE_CNT (0xc) -// #define REG_NDMA_PAR (0x300 + 0x1c) - #define NDMA_CFG_SRC_DRQ_IR_RX (0x00 << 0) #define NDMA_CFG_SRC_DRQ_NONE (0x01 << 0) diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_eth.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_eth.c index 6ea1e16d6e..6ef0af44bc 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_eth.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_eth.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_eth_fire.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_eth_fire.c index 673f0061b8..a7445c02c0 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_eth_fire.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_eth_fire.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_ft5406.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_ft5406.c index df81f2e52a..ab5a8baa39 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_ft5406.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_ft5406.c @@ -1,21 +1,7 @@ /* - * File : drv_ft5406.c - * FT5406 touch driver - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_hwtimer.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_hwtimer.c index 41ef5d4b5b..b7e5412c2c 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_hwtimer.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_hwtimer.c @@ -1,22 +1,8 @@ /* -* File : drv_hwtimer.c -* This file is part of RT-Thread RTOS -* COPYRIGHT (C) 2017, RT-Thread Development Team -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License along -* with this program; if not, write to the Free Software Foundation, Inc., -* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * * Change Logs: * Date Author Notes * 2018-04-17 WangBing the first version. diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_hwtimer.h b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_hwtimer.h index b37d586c96..6e157c2332 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_hwtimer.h +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_hwtimer.h @@ -1,22 +1,8 @@ /* -* File : drv_hwtimer.h -* This file is part of RT-Thread RTOS -* COPYRIGHT (C) 2017, RT-Thread Development Team -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License along -* with this program; if not, write to the Free Software Foundation, Inc., -* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * * Change Logs: * Date Author Notes * 2018-04-17 WangBing the first version. diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_i2c.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_i2c.c index edd65cb1ac..3a428b0644 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_i2c.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_i2c.c @@ -1,20 +1,7 @@ /* - * File : drv_i2c.c - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_i2c.h b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_i2c.h index 4743225c37..53e77e2ce7 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_i2c.h +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_i2c.h @@ -1,11 +1,7 @@ /* - * File : drv_i2c.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_lcd.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_lcd.c index 911b8d0786..209fc7787a 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_lcd.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_lcd.c @@ -1,11 +1,7 @@ /* - * File : drv_lcd.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_lcd.h b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_lcd.h index cdde135c78..a465909935 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_lcd.h +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_lcd.h @@ -1,11 +1,7 @@ /* - * File : drv_lcd2.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pcf8574.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pcf8574.c index 165b75a562..398013ea6a 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pcf8574.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pcf8574.c @@ -1,11 +1,7 @@ /* - * File : drv_pcf8574.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pcf8574.h b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pcf8574.h index 7c8274f2d0..266ce0239a 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pcf8574.h +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pcf8574.h @@ -1,11 +1,7 @@ /* - * File : drv_pcf8574.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pin.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pin.c index 3acc6ae609..f1a63fd120 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pin.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pin.c @@ -1,11 +1,7 @@ /* - * File : drv_pin.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pin.h b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pin.h index 6c0574ec0f..55e09ebc10 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pin.h +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_pin.h @@ -1,11 +1,7 @@ /* - * File : drv_pin.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_rtc.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_rtc.c index 0c1dea21eb..06cb2e9094 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_rtc.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_rtc.c @@ -1,11 +1,7 @@ /* - * File : drv_rtc.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_rtc.h b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_rtc.h index e7cf53902c..c31cd80687 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_rtc.h +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_rtc.h @@ -1,11 +1,7 @@ /* - * File : drv_rtc.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_sdio.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_sdio.c index 732077df7c..27f58643f5 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_sdio.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_sdio.c @@ -1,21 +1,7 @@ /* - * File : syscall_write.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_sdram.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_sdram.c index 2560caab5e..f54b448779 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_sdram.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_sdram.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_bus.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_bus.c index 4460fafe41..eb7e39dcf2 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_bus.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_bus.c @@ -1,11 +1,7 @@ /* - * File : drv_spi_bus.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_bus.h b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_bus.h index b5016a4ebf..f9068893c3 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_bus.h +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_bus.h @@ -1,11 +1,7 @@ /* - * File : drv_spi_bus.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_flash.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_flash.c index 98927396b8..65d5bb3e22 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_flash.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_flash.c @@ -1,11 +1,7 @@ /* - * File : drv_spi_flash.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_flash.h b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_flash.h index ede2c53111..3cf2837063 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_flash.h +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_spi_flash.h @@ -1,11 +1,7 @@ /* - * File : drv_spi_flash.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_uart.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_uart.c index ca076ab19a..c56c33d0af 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_uart.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_uart.c @@ -1,11 +1,7 @@ /* - * File : drv_uart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes @@ -30,11 +26,8 @@ !defined(RT_USING_UART5) && !defined(RT_USING_UART6) && \ !defined(RT_USING_UART7) && !defined(RT_USING_UART8) #error "Please define at least one UARTx" - #endif - - #include /* imxrt uart driver */ diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_uart.h b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_uart.h index ca9fb423a1..edfb1084f0 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_uart.h +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_uart.h @@ -1,11 +1,7 @@ /* - * File : drv_uart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes @@ -15,8 +11,6 @@ #ifndef __DRV_UART_H__ #define __DRV_UART_H__ -#include -#include - +int imxrt_hw_uart_init(void); #endif diff --git a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_usbd.c b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_usbd.c index 29e9913141..3482130ed2 100644 --- a/bsp/imxrt/Libraries/imxrt1050/drivers/drv_usbd.c +++ b/bsp/imxrt/Libraries/imxrt1050/drivers/drv_usbd.c @@ -1,11 +1,7 @@ /* - * File : drv_usbc.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes From 646cb6cabc5f422d36d610aee573dba11da01818 Mon Sep 17 00:00:00 2001 From: tyx <462747508@qq.com> Date: Fri, 19 Oct 2018 16:45:41 +0800 Subject: [PATCH 27/31] =?UTF-8?q?[bsp][amebaz]=20BSP=E5=B7=A5=E7=A8=8B?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=8C=E9=80=82=E9=85=8D=E6=96=B0=E7=9A=84?= =?UTF-8?q?WLAN=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/amebaz/.config | 140 +- bsp/amebaz/Kconfig | 6 +- bsp/amebaz/README.md | 127 +- bsp/amebaz/applications/main.c | 11 +- bsp/amebaz/drivers/Kconfig | 9 + bsp/amebaz/drivers/SConscript | 11 +- bsp/amebaz/drivers/drv_uart.c | 8 +- bsp/amebaz/drivers/drv_wifi.c | 453 ---- bsp/amebaz/drivers/wlan/SConscript | 9 +- bsp/amebaz/drivers/wlan/amebaz_wlan.c | 642 ----- bsp/amebaz/drivers/wlan/amebaz_wlan.h | 54 - bsp/amebaz/drivers/wlan/drv_wifi.c | 662 +++++ bsp/amebaz/drivers/{ => wlan}/drv_wifi.h | 4 +- bsp/amebaz/drivers/wlan/drv_wlan.c | 375 +++ bsp/amebaz/drivers/wlan/drv_wlan.h | 101 + bsp/amebaz/project.ewp | 2466 ------------------ bsp/amebaz/project.ewt | 2504 ------------------ bsp/amebaz/project.eww | 10 - bsp/amebaz/rtconfig.h | 59 +- bsp/amebaz/rtconfig.py | 11 +- bsp/amebaz/template.ewd | 2977 ---------------------- bsp/amebaz/template.ewp | 1917 -------------- bsp/amebaz/template.ewt | 2099 --------------- bsp/amebaz/tmp.board | 21 - 24 files changed, 1437 insertions(+), 13239 deletions(-) create mode 100644 bsp/amebaz/drivers/Kconfig delete mode 100644 bsp/amebaz/drivers/drv_wifi.c delete mode 100644 bsp/amebaz/drivers/wlan/amebaz_wlan.c delete mode 100644 bsp/amebaz/drivers/wlan/amebaz_wlan.h create mode 100644 bsp/amebaz/drivers/wlan/drv_wifi.c rename bsp/amebaz/drivers/{ => wlan}/drv_wifi.h (97%) create mode 100644 bsp/amebaz/drivers/wlan/drv_wlan.c create mode 100644 bsp/amebaz/drivers/wlan/drv_wlan.h delete mode 100644 bsp/amebaz/project.ewp delete mode 100644 bsp/amebaz/project.ewt delete mode 100644 bsp/amebaz/project.eww delete mode 100644 bsp/amebaz/template.ewd delete mode 100644 bsp/amebaz/template.ewp delete mode 100644 bsp/amebaz/template.ewt delete mode 100644 bsp/amebaz/tmp.board diff --git a/bsp/amebaz/.config b/bsp/amebaz/.config index 7745397107..775f77a112 100644 --- a/bsp/amebaz/.config +++ b/bsp/amebaz/.config @@ -13,15 +13,24 @@ CONFIG_RT_THREAD_PRIORITY_32=y # CONFIG_RT_THREAD_PRIORITY_256 is not set CONFIG_RT_THREAD_PRIORITY_MAX=32 CONFIG_RT_TICK_PER_SECOND=1000 -CONFIG_RT_DEBUG=y CONFIG_RT_USING_OVERFLOW_CHECK=y -CONFIG_RT_DEBUG_INIT=0 -CONFIG_RT_DEBUG_THREAD=0 CONFIG_RT_USING_HOOK=y +CONFIG_RT_IDEL_HOOK_LIST_SIZE=4 CONFIG_IDLE_THREAD_STACK_SIZE=256 CONFIG_RT_USING_TIMER_SOFT=y CONFIG_RT_TIMER_THREAD_PRIO=4 CONFIG_RT_TIMER_THREAD_STACK_SIZE=512 +CONFIG_RT_DEBUG=y +# CONFIG_RT_DEBUG_INIT_CONFIG is not set +# CONFIG_RT_DEBUG_THREAD_CONFIG is not set +# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set +# CONFIG_RT_DEBUG_IPC_CONFIG is not set +# CONFIG_RT_DEBUG_TIMER_CONFIG is not set +# CONFIG_RT_DEBUG_IRQ_CONFIG is not set +# CONFIG_RT_DEBUG_MEM_CONFIG is not set +# CONFIG_RT_DEBUG_SLAB_CONFIG is not set +# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set +# CONFIG_RT_DEBUG_MODULE_CONFIG is not set # # Inter-Thread communication @@ -53,13 +62,14 @@ CONFIG_RT_USING_DEVICE=y CONFIG_RT_USING_CONSOLE=y CONFIG_RT_CONSOLEBUF_SIZE=128 CONFIG_RT_CONSOLE_DEVICE_NAME="dbg" -# CONFIG_RT_USING_MODULE is not set # # RT-Thread Components # CONFIG_RT_USING_COMPONENTS_INIT=y -# CONFIG_RT_USING_USER_MAIN is not set +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 # # C++ features @@ -82,7 +92,7 @@ CONFIG_FINSH_CMD_SIZE=80 # CONFIG_FINSH_USING_AUTH is not set CONFIG_FINSH_USING_MSH=y CONFIG_FINSH_USING_MSH_DEFAULT=y -# CONFIG_FINSH_USING_MSH_ONLY is not set +CONFIG_FINSH_USING_MSH_ONLY=y CONFIG_FINSH_ARG_MAX=10 # @@ -94,26 +104,49 @@ CONFIG_FINSH_ARG_MAX=10 # Device Drivers # CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_PIPE_BUFSZ=512 CONFIG_RT_USING_SERIAL=y # CONFIG_RT_USING_CAN is not set # CONFIG_RT_USING_HWTIMER is not set # CONFIG_RT_USING_CPUTIME is not set # CONFIG_RT_USING_I2C is not set -CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_PIN is not set # CONFIG_RT_USING_PWM is not set # CONFIG_RT_USING_MTD_NOR is not set # CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_MTD is not set # CONFIG_RT_USING_RTC is not set # CONFIG_RT_USING_SDIO is not set # CONFIG_RT_USING_SPI is not set # CONFIG_RT_USING_WDT is not set -CONFIG_RT_USING_WIFI=y -CONFIG_RT_USING_WLAN_STA=y -CONFIG_RT_USING_WLAN_AP=y -CONFIG_WIFI_DEVICE_STA_NAME="w0" -CONFIG_WIFI_DEVICE_AP_NAME="ap" # CONFIG_RT_USING_AUDIO is not set +# +# Using WiFi +# +CONFIG_RT_USING_WIFI=y +CONFIG_RT_WLAN_DEVICE_STA_NAME="wlan0" +CONFIG_RT_WLAN_DEVICE_AP_NAME="wlan1" +CONFIG_RT_WLAN_DEFAULT_PROT="lwip" +CONFIG_RT_WLAN_SCAN_WAIT_MS=10000 +CONFIG_RT_WLAN_CONNECT_WAIT_MS=10000 +CONFIG_RT_WLAN_SSID_MAX_LENGTH=32 +CONFIG_RT_WLAN_PASSWORD_MAX_LENGTH=32 +CONFIG_RT_WLAN_SCAN_SORT=y +CONFIG_RT_WLAN_CFG_INFO_MAX=3 +CONFIG_RT_WLAN_WORKQUEUE_THREAD_NAME="wlan_job" +CONFIG_RT_WLAN_WORKQUEUE_THREAD_SIZE=2048 +CONFIG_RT_WLAN_WORKQUEUE_THREAD_PRIO=22 +CONFIG_RT_WLAN_DEV_EVENT_NUM=2 +# CONFIG_RT_WLAN_PROT_LWIP_PBUF_FORCE is not set +CONFIG_RT_WLAN_DEBUG=y +CONFIG_RT_WLAN_CMD_DEBUG=y +# CONFIG_RT_WLAN_MGNT_DEBUG is not set +# CONFIG_RT_WLAN_DEV_DEBUG is not set +# CONFIG_RT_WLAN_PROT_DEBUG is not set +# CONFIG_RT_WLAN_CFG_DEBUG is not set +# CONFIG_RT_WLAN_LWIP_DEBUG is not set + # # Using USB # @@ -127,15 +160,21 @@ CONFIG_RT_USING_LIBC=y # CONFIG_RT_USING_PTHREADS is not set # -# Network stack +# Network # +# +# Socket abstraction layer +# +# CONFIG_RT_USING_SAL is not set + # # light weight TCP/IP stack # CONFIG_RT_USING_LWIP=y -CONFIG_RT_USING_LWIP141=y -# CONFIG_RT_USING_LWIP202 is not set +# CONFIG_RT_USING_LWIP141 is not set +CONFIG_RT_USING_LWIP202=y +# CONFIG_RT_USING_LWIP_IPV6 is not set CONFIG_RT_LWIP_IGMP=y CONFIG_RT_LWIP_ICMP=y # CONFIG_RT_LWIP_SNMP is not set @@ -178,11 +217,18 @@ CONFIG_LWIP_SO_SNDTIMEO=1 CONFIG_LWIP_SO_RCVBUF=1 # CONFIG_RT_LWIP_NETIF_LOOPBACK is not set CONFIG_LWIP_NETIF_LOOPBACK=0 +# CONFIG_RT_LWIP_STATS is not set +# CONFIG_RT_LWIP_DEBUG is not set # # Modbus master and slave stack # # CONFIG_RT_USING_MODBUS is not set + +# +# AT commands +# +# CONFIG_RT_USING_AT is not set # CONFIG_LWIP_USING_DHCPD is not set # @@ -212,7 +258,6 @@ CONFIG_LWIP_NETIF_LOOPBACK=0 # CONFIG_PKG_USING_LJSON is not set # CONFIG_PKG_USING_EZXML is not set # CONFIG_PKG_USING_NANOPB is not set -# CONFIG_PKG_USING_GAGENT_CLOUD is not set # # Wi-Fi @@ -230,7 +275,16 @@ CONFIG_LWIP_NETIF_LOOPBACK=0 # CONFIG_PKG_USING_COAP is not set # CONFIG_PKG_USING_NOPOLL is not set # CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_WIZNET is not set + +# +# IoT Cloud +# # CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set # # security packages @@ -242,6 +296,7 @@ CONFIG_LWIP_NETIF_LOOPBACK=0 # # language packages # +# CONFIG_PKG_USING_LUA is not set # CONFIG_PKG_USING_JERRYSCRIPT is not set # CONFIG_PKG_USING_MICROPYTHON is not set @@ -258,6 +313,7 @@ CONFIG_LWIP_NETIF_LOOPBACK=0 # CONFIG_PKG_USING_EASYFLASH is not set # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_RDB is not set # # system packages @@ -271,22 +327,29 @@ CONFIG_LWIP_NETIF_LOOPBACK=0 # CONFIG_PKG_USING_SQLITE is not set # CONFIG_PKG_USING_RTI is not set # CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_CMSIS is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set # # peripheral libraries and drivers # -# CONFIG_PKG_USING_STM32F4_HAL is not set -# CONFIG_PKG_USING_STM32F4_DRIVERS is not set CONFIG_PKG_USING_REALTEK_AMEBA=y CONFIG_PKG_REALTEK_AMEBA_PATH="/packages/peripherals/realtek_ameba" CONFIG_PKG_USING_REALTEK_AMEBA_LATEST_VERSION=y # CONFIG_PKG_USING_REALTEK_AMEBA_V100 is not set CONFIG_PKG_REALTEK_AMEBA_VER="latest" -# CONFIG_PKG_USING_CC3200_SDK is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_AHT10 is not set +# CONFIG_PKG_USING_AP3216C is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_U8G2 is not set # # miscellaneous packages # +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set # CONFIG_PKG_USING_MINILZO is not set # CONFIG_PKG_USING_QUICKLZ is not set @@ -298,17 +361,52 @@ CONFIG_PKG_REALTEK_AMEBA_VER="latest" # # sample package # -# CONFIG_PKG_USING_SAMPLES is not set + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set # # example package: hello # # CONFIG_PKG_USING_HELLO is not set +# +# Privated Packages of RealThread +# +# CONFIG_PKG_USING_CODEC is not set +# CONFIG_PKG_USING_PLAYER is not set +# CONFIG_PKG_USING_PERSIMMON_SRC is not set + +# +# Network Utilities +# +# CONFIG_PKG_USING_MDNS is not set +# CONFIG_PKG_USING_UPNP is not set +# CONFIG_PKG_USING_WICED is not set +# CONFIG_PKG_USING_CLOUDSDK is not set +# CONFIG_PKG_USING_COREMARK is not set +# CONFIG_PKG_USING_POWER_MANAGER is not set +# CONFIG_PKG_USING_RT_OTA is not set +# CONFIG_PKG_USING_RDBD_SRC is not set +# CONFIG_PKG_USING_RTINSIGHT is not set +# CONFIG_PKG_USING_SMARTCONFIG is not set + +# +# Test Packages of RealThread +# +# CONFIG_PKG_USING_JERRYSCRIPT_WIN32 is not set +# CONFIG_PKG_USING_JS_PERSIMMON is not set + # # Env config # # CONFIG_SYS_AUTO_UPDATE_PKGS is not set # CONFIG_SYS_CREATE_MDK_IAR_PROJECT is not set # CONFIG_SYS_PKGS_DOWNLOAD_ACCELERATE is not set -CONFIG_RT_USING_UART0=y +# CONFIG_BSP_USING_UART0 is not set +CONFIG_BSP_USING_WIFI=y diff --git a/bsp/amebaz/Kconfig b/bsp/amebaz/Kconfig index 7c35a1cc66..f623dcf57f 100644 --- a/bsp/amebaz/Kconfig +++ b/bsp/amebaz/Kconfig @@ -26,10 +26,6 @@ config $ENV_DIR source "$RTT_DIR/Kconfig" source "$PKGS_DIR/Kconfig" source "$ENV_DIR/tools/scripts/cmds/Kconfig" - -config RT_USING_UART0 - bool "Using RT_USING_UART0" - default y +source "$BSP_DIR/drivers/Kconfig" select PKG_USING_REALTEK_AMEBA - diff --git a/bsp/amebaz/README.md b/bsp/amebaz/README.md index d2c0b4013e..31f0559a3c 100644 --- a/bsp/amebaz/README.md +++ b/bsp/amebaz/README.md @@ -17,8 +17,8 @@ amebaz 是由Realtek推出的Cortex-M4内核的WiFi SOC芯片rtl8710b系列 | 环境 | 说明 | | ------------ | ------------------------------------------------------------ | | PCæ“作系统 | Linux/MacOS/Windows | -| 编译器 | arm-none-eabi-gcc version 6.3.1 20170620 (release)/iar | -| 构建工具 | scons/iar | +| 编译器 | arm-none-eabi-gcc version 6.3.1 20170620 (release) | +| 构建工具 | scons | | ä¾èµ–软件环境 | Env工具/(IAR或arm-none-eabi-gcc)/git/调试器驱动 | 1) 下载æºç  @@ -40,9 +40,9 @@ amebaz 是由Realtek推出的Cortex-M4内核的WiFi SOC芯片rtl8710b系列 (Windows) ->在[RT-Thread官网][1]下载ENV工具包 +>在[RT-Thread官网][1]下载ENV工具包,并å‚考官网给出的env使用教程 -3) é…ç½®èŠ¯ç‰‡åž‹å· +3) é…置工程(å¯é€‰ï¼‰ (Linux/Mac) @@ -56,8 +56,6 @@ amebaz 是由Realtek推出的Cortex-M4内核的WiFi SOC芯片rtl8710b系列 menuconfig ``` -在menuconfig页é¢é…置并选择对应的芯片型å·ï¼Œè‹¥å¼€å‘环境为IAR,则需è¦ç”Ÿæˆå·¥ç¨‹ - 4) 下载package amebazé…套的驱动库以packageå½¢å¼æ供,故需先下载对应的package(realtek-ameba),请使用env下载package @@ -66,28 +64,11 @@ amebazé…套的驱动库以packageå½¢å¼æ供,故需先下载对应的package pkgs --update ``` -5) 生æˆå·¥ç¨‹(Mac/Linux下请跳过此步骤) +*该æ¿çº§æ”¯æŒåŒ…ä¸æ”¯æŒç”Ÿæˆmdk的工程åŠiar工程,åŽç»­ä¼šæ”¯æŒiar工程 -(Windows IAR) +5) 编译 -```bash - SET RTT_CC=iar - scons --target=iar -s -``` - -*该æ¿çº§æ”¯æŒåŒ…ä¸æ”¯æŒç”Ÿæˆmdk的工程 - - -6) 编译 - -使用IAR请å‚è§å¯¹åº”教程 - -(Windows arm-none-eabi-gcc) -使用以下指令设置gcc路径 - -```bash - SET RTT_EXEC_PATH=[GCC路径] -``` +Windowså¯ä»¥ä½¿ç”¨env编译工程,无需设置GCC工具链路径,直接在bsp/amebaz工程目录下编译å³å¯ã€‚ (Linux/Mac arm-none-eabi-gcc) 使用以下指令设置gcc路径 @@ -148,15 +129,103 @@ msh /> *é»˜è®¤ä¸²å£ +## 4. WIFI简å•ä½¿ç”¨ -## 4. 驱动支æŒæƒ…况åŠè®¡åˆ’ + +### 4.1 wifi扫æ命令 + +wifi 扫æ命令格å¼å¦‚下 + +```unknown + wifi scan +``` + +命令说明 + +| 字段 | æè¿° | +| ---- | ------------------------ | +| wifi | 有关wifi命令都以wifi开头 | +| scan | wifi执行扫æ动作 | + +在调试工具中输入该命令,å³å¯è¿›è¡Œ wifi 命令扫æ,调试信æ¯å¦‚下 + +```unknown + +scan ap down + SSID MAC security rssi chn Mbps +------------------------------- ----------------- -------------- ---- --- ---- +NEO-shanghai-ap2 58:66:ba:a1:ee:71 WPA2_TKIP_PSK -74 11 0 +WQ1 88:25:93:94:51:54 WPA2_AES_PSK -76 13 0 +shyc1 a0:40:a0:a3:e8:c9 WPA2_AES_PSK -77 13 0 +KVIP 70:65:82:3b:71:43 WPA2_AES_PSK -83 11 0 +YST2016 88:25:93:c6:67:d1 WPA2_TKIP_PSK -84 4 0 + +``` + +> 注: +> +> 测试命令有关 wifi,å‡ä»¥wifi开头。 + +### 4.2 wifi 接入 + +接入 wifi 之å‰ï¼Œå…ˆä»‹ç»ä¸€ä¸‹å…¶æŽ¥å…¥çš„命令 ,如下 + +```unknown + wifi join ssid 123456789 +``` + +命令说明 + +| 字段 | æè¿° | +| --------- | ---------------------------------- | +| wifi | 有关wifi命令都以wifi开头 | +| join | wifi执行连接动作 | +| ssid | 热点的åå­— | +| 123456789 | 热点的密ç ï¼Œæ²¡æœ‰å¯†ç å¯ä¸è¾“入这一项 | + +了解上述命令,并且æˆåŠŸå®Œæˆå‰é¢æ­¥éª¤ï¼Œåœ¨ä¸²å£ä¸­è¾“å…¥ `wifi w0 join realthread_VIP 123456789` ,如下日志表示连接æˆåŠŸ + +```unknown + +WIFI wlan0 Setting: +============================== + MODE => STATION + SSID => realthread_VIP + CHANNEL => 6 + SECURITY => AES + PASSWORD => 123456789 +[I/WLAN.mgnt] wifi connect success ssid:realthread_VIP + +``` + +å¦å¤–,æ供一个简å•çš„测试使用命令,查询设备IP地å€å‘½ä»¤ï¼šifconfig。 + +```unknown + +network interface: w0 (Default) +MTU: 1500 +MAC: 00 e0 4c d5 ac 46 +FLAGS: UP LINK_UP ETHARP BROADCAST +ip address: 172.16.200.110 +gw address: 172.16.200.1 +net mask : 255.255.255.0 +dns server #0: 172.16.200.1 +dns server #1: 223.5.5.5 + +``` + +## 5. 驱动支æŒæƒ…况åŠè®¡åˆ’ | 驱动 | 支æŒæƒ…况 | 备注 | | ---------- | :------: | :--------------------------: | -| UART | æ”¯æŒ | UART0 | +| UART | æ”¯æŒ | UART0 | +| WLAN | éƒ¨åˆ†æ”¯æŒ | 仅支æŒSTAæ¨¡å¼ | +## 6. 已知问题 -## 5. è”ç³»äººä¿¡æ¯ +wlan仅支æŒSTA模å¼ï¼Œè¿žæŽ¥WIFI输入错误密ç æ—¶ï¼Œä¼šå®•æœºã€‚ + +## 7. è”ç³»äººä¿¡æ¯ ç»´æŠ¤äºº: [flyingcys][4] < [flyingcys@163.com][5] > diff --git a/bsp/amebaz/applications/main.c b/bsp/amebaz/applications/main.c index 2f304b9503..381b026867 100644 --- a/bsp/amebaz/applications/main.c +++ b/bsp/amebaz/applications/main.c @@ -15,19 +15,12 @@ #include #include - -/** - * @addtogroup ameba - */ - -/*@{*/ +#include int main(void) { rt_kprintf("build time: %s %s\n", __DATE__, __TIME__); rt_kprintf("Hello RT-Thread!\n"); - + rt_wlan_set_mode(RT_WLAN_DEVICE_STA_NAME, RT_WLAN_STATION); return 0; } - -/*@}*/ diff --git a/bsp/amebaz/drivers/Kconfig b/bsp/amebaz/drivers/Kconfig new file mode 100644 index 0000000000..19046fc40c --- /dev/null +++ b/bsp/amebaz/drivers/Kconfig @@ -0,0 +1,9 @@ +config BSP_USING_UART0 + bool "Using UART0" + select RT_USING_SERIAL + default y + +config BSP_USING_WIFI + bool "Using WIFI" + select RT_USING_WIFI + default y diff --git a/bsp/amebaz/drivers/SConscript b/bsp/amebaz/drivers/SConscript index aec108b678..dbaeb2a476 100644 --- a/bsp/amebaz/drivers/SConscript +++ b/bsp/amebaz/drivers/SConscript @@ -5,14 +5,9 @@ list = os.listdir(cwd) objs = [] src = Split(''' - board.c - drv_uart.c - ''') - -if GetDepend(['RT_USING_LWIP']): - src += Split(''' - drv_wifi.c - ''') + board.c + drv_uart.c + ''') CPPPATH = [cwd] diff --git a/bsp/amebaz/drivers/drv_uart.c b/bsp/amebaz/drivers/drv_uart.c index da89095d30..a9b58694b1 100644 --- a/bsp/amebaz/drivers/drv_uart.c +++ b/bsp/amebaz/drivers/drv_uart.c @@ -37,7 +37,7 @@ struct device_uart rt_uint32_t irqno; }; -#ifdef RT_USING_UART0 +#ifdef BSP_USING_UART0 static struct rt_serial_device serial0; static struct device_uart uart0; #endif @@ -230,16 +230,16 @@ int rt_hw_uart_init(void) struct rt_serial_device *serial; struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT; -#ifdef RT_USING_UART0 +#ifdef BSP_USING_UART0 { struct device_uart *uart; serial = &serial0; uart = &uart0; - + /* Init UART Hardware */ serial_init(&uart->serial, UART_TX, UART_RX); - + serial->ops = &_uart_ops; serial->config = config; serial->config.baud_rate = 115200; diff --git a/bsp/amebaz/drivers/drv_wifi.c b/bsp/amebaz/drivers/drv_wifi.c deleted file mode 100644 index 7c0366d6aa..0000000000 --- a/bsp/amebaz/drivers/drv_wifi.c +++ /dev/null @@ -1,453 +0,0 @@ -/* - * File : drv_wifi.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Change Logs: - * Date Author Notes - * 2017-5-30 Bernard the first version - * 2018-5-30 flyingcys add amebaz wifi driver - */ - -#include -#include -#include - -#include "amebaz_wlan.h" - -//#define ETH_RX_DUMP -//#define ETH_TX_DUMP -//#define MINI_DUMP - -struct sk_buff * rltk_wlan_get_recv_skb(int idx); -struct sk_buff * rltk_wlan_alloc_skb(unsigned int total_len); - -#define MAX_ADDR_LEN 6 - -struct ameba_wifi -{ - struct rt_wlan_device parent; - - rt_uint8_t dev_addr[MAX_ADDR_LEN]; - - int idx; - int connected; -}; - -#ifdef RT_USING_WLAN_STA -static struct ameba_wifi wifi_sta; -#endif - -#ifdef RT_USING_WLAN_AP -static struct ameba_wifi wifi_ap; -#endif - -#if defined(ETH_RX_DUMP) || defined(ETH_TX_DUMP) -static void packet_dump(const char *msg, const struct pbuf *p) -{ - const struct pbuf *q; - rt_uint32_t i, j; - rt_uint8_t *ptr; - - rt_kprintf("%s %d byte\n", msg, p->tot_len); - -#ifdef MINI_DUMP - return; -#endif - - i = 0; - for (q = p; q != RT_NULL; q = q->next) - { - ptr = q->payload; - - for (j = 0; j < q->len; j++) - { - if ((i % 8) == 0) - { - rt_kprintf(" "); - } - - if ((i % 16) == 0) - { - rt_kprintf("\r\n"); - } - rt_kprintf("%02x ", *ptr); - - i++; - ptr++; - } - } - - rt_kprintf("\n\n"); -} -#endif /* dump */ - -#define netifapi_netif_set_link_up(n) netifapi_netif_common(n, netif_set_link_up, NULL) -#define netifapi_netif_set_link_down(n) netifapi_netif_common(n, netif_set_link_down, NULL) - -void netif_set_connected(int connected) -{ - wifi_sta.connected = connected; - if (connected) - { - netifapi_netif_set_link_up(wifi_sta.parent.parent.netif); - } - else - { - netifapi_netif_set_link_down(wifi_sta.parent.parent.netif); - } -} - -void rltk_wlan_set_netif_info(int idx_wlan, void * dev, unsigned char * dev_addr) -{ - struct ameba_wifi *wifi; - - if(idx_wlan == 0) - wifi = &wifi_sta; - - rtw_memcpy(wifi->dev_addr, dev_addr, 6); - rt_hw_wifi_init(); -} - -void netif_rx(int idx, unsigned int len) -{ - struct ameba_wifi *wifi; - struct pbuf *p, *q; - int sg_len = 0; - struct sk_buff *skb = RT_NULL; - - if(idx == 0) - wifi = &wifi_sta; - -#if CONFIG_WLAN - if(!wifi->connected || !rltk_wlan_running(idx)) - return; -#endif - - skb = rltk_wlan_get_recv_skb(idx); - if(!skb) - { - rt_kprintf("netif_rx rltk_wlan_get_recv_skb NULL.\n"); - return; - } - - p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL); - if (p != RT_NULL) - { - pbuf_take(p, skb->data, len); - skb_pull(skb, len); - -#ifdef ETH_RX_DUMP - packet_dump("RX dump", p); -#endif /* ETH_RX_DUMP */ - - if(wifi->parent.parent.netif->input(p, wifi->parent.parent.netif) != ERR_OK) - { - pbuf_free(p); - } - } - else - { - rt_kprintf("pbuf_alloc NULL for wifi RX.\n"); - } -} - -int netif_is_valid_IP(int idx, unsigned char *ip_dest) -{ - - struct netif * pnetif; - struct ip_addr addr = { 0 }; - u32_t *ip_dest_addr = (u32_t*)ip_dest; - - if(idx == 0) - pnetif = wifi_sta.parent.parent.netif; - - addr.addr = *ip_dest_addr; - - if(pnetif == RT_NULL) - return 0; - - if(pnetif->ip_addr.addr == 0) - return 1; - - if(ip_addr_ismulticast(&addr) || ip_addr_isbroadcast(&addr,pnetif)) - { - return 1; - } - - if(ip_addr_cmp(&(pnetif->ip_addr), &addr)) - return 1; - - return 0; -} - -void netif_post_sleep_processing(void) -{ - -} - -void netif_pre_sleep_processing(void) -{ - -} - -unsigned char *rltk_wlan_get_ip(int idx) -{ - struct ameba_wifi *wifi; - - if(idx == 0) - wifi = &wifi_sta; - - return (unsigned char *)&(wifi->parent.parent.netif->ip_addr); -} - -struct netif *rltk_wlan_get_netif(int idx) -{ - struct netif *netif; - - if(idx == 0) - netif = wifi_sta.parent.parent.netif; - else if(idx == 1) - netif = wifi_ap.parent.parent.netif; - - return netif; -} - - -rt_err_t rt_ameba_wifi_init(rt_device_t dev) -{ - return RT_EOK; -} - -rt_err_t rt_ameba_wifi_open(rt_device_t dev, rt_uint16_t oflag) -{ - return RT_EOK; -} - -rt_err_t rt_ameba_wifi_close(rt_device_t dev) -{ - return RT_EOK; -} - -rt_size_t rt_ameba_wifi_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size) -{ - rt_set_errno(-RT_ENOSYS); - return 0; -} - -rt_size_t rt_ameba_wifi_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size) -{ - rt_set_errno(-RT_ENOSYS); - return 0; -} - -rt_err_t rt_ameba_wifi_control(rt_device_t dev, int cmd, void *args) -{ - switch(cmd) - { - case NIOCTL_GADDR: - { - struct ameba_wifi *wifi = (struct ameba_wifi *)dev; - if(args) - memcpy(args, wifi->dev_addr, MAX_ADDR_LEN); - else - return -RT_ERROR; - } - break; - - case WIFI_INIT: - { - rt_wlan_mode_t mode = *(rt_wlan_mode_t *)args; - rt_kprintf("mode:%d\n", mode); - } - break; - - case WIFI_SCAN: - { - struct rt_wlan_scan_result *dst = RT_NULL; - dst = (struct rt_wlan_scan_result *)rt_malloc(sizeof(struct rt_wlan_scan_result)); - if(dst == RT_NULL) - { - rt_kprintf("rt_malloc for scan result failed!\n"); - return -RT_ENOMEM; - } - - memset(dst, 0, sizeof(struct rt_wlan_scan_result)); - if(amebaz_wifi_scan(dst) != RT_EOK) - { - rt_kprintf("amebaz_wifi_scan failed...\n"); - return -RT_ERROR; - } - - *(struct rt_wlan_scan_result **)args = dst; - } - break; - - case WIFI_JOIN: - - break; - - case WIFI_EASYJOIN: - { - struct rt_wlan_device *wlan = (struct rt_wlan_device *)dev; - if(amebaz_wifi_connect(wlan->info->ssid, (char *)args) != RT_EOK) - { - rt_kprintf("amebaz_wifi_connect failed...\n"); - return -RT_ERROR; - } - } - break; - - case WIFI_SOFTAP: - { - struct rt_wlan_device *wlan = (struct rt_wlan_device *)dev; - if(amebaz_wifi_ap_start(wlan->info->ssid, (char *)args, wlan->info->channel) != RT_EOK) - { - rt_kprintf("amebaz_wifi_ap_start failed...\n"); - return -RT_ERROR; - } - } - break; - - case WIFI_DISCONNECT: - if(amebaz_wifi_disconnect() != RT_EOK) - { - rt_kprintf("amebaz_wifi_disconnect failed...\n"); - return -RT_ERROR; - } - break; - - case WIFI_GET_RSSI: - { - int *rssi = (int *)args; - - *rssi = amebaz_wifi_get_rssi(); - } - break; - - case WIFI_ENTER_POWERSAVE: - - break; - - case WIFI_CFG_MONITOR: - - break; - - case WIFI_SET_CHANNEL: - { - int channel = *(int *)args; - - amebaz_wifi_set_channel(channel); - } - break; - - case WIFI_GET_CHANNEL: - { - int *channel = (int *)args; - - *channel = amebaz_wifi_get_channel(); - } - break; - - case WIFI_SET_MONITOR_CALLBACK: - - break; - } - - return RT_EOK; -} - -rt_err_t rt_ameba_wifi_tx(rt_device_t dev, struct pbuf* p) -{ - rt_err_t result = RT_EOK; - struct ameba_wifi *wifi = (struct ameba_wifi *)dev; - int idx; - rt_base_t level; - struct sk_buff *skb = RT_NULL; - - idx = wifi->idx; - - level = rt_hw_interrupt_disable(); - if(wifi->connected && rltk_wlan_check_isup(idx)) - rltk_wlan_tx_inc(idx); - else - { - rt_hw_interrupt_enable(level); -// rt_kprintf("is not: connected && rltk_wlan_check_isup(idx)\n"); - - result = -RT_ERROR; - goto _exit; - } - - rt_hw_interrupt_enable(level); - -#ifdef ETH_TX_DUMP - packet_dump("TX dump", p); -#endif /* ETH_TX_DUMP */ - - skb = rltk_wlan_alloc_skb(p->tot_len); - if(skb != RT_NULL) - { - /* copy pbuf to a whole ETH frame */ - pbuf_copy_partial(p, skb->tail, p->tot_len, 0); - skb_put(skb, p->tot_len); - - rltk_wlan_send_skb(idx, skb); - } - else - { - rt_kprintf("rltk_wlan_alloc_skb NULL for WIFI TX.\n"); - result = -RT_ENOMEM; - } - -_exit: - level = rt_hw_interrupt_disable(); - rltk_wlan_tx_dec(idx); - rt_hw_interrupt_enable(level); - - return result; -} - -int rt_hw_wifi_init(void) -{ - rt_kprintf("%s %d\n", __FUNCTION__, __LINE__); - -#ifdef RT_USING_WLAN_STA - wifi_sta.parent.parent.parent.init = rt_ameba_wifi_init; - wifi_sta.parent.parent.parent.open = rt_ameba_wifi_open; - wifi_sta.parent.parent.parent.close = rt_ameba_wifi_close; - wifi_sta.parent.parent.parent.read = rt_ameba_wifi_read; - wifi_sta.parent.parent.parent.write = rt_ameba_wifi_write; - wifi_sta.parent.parent.parent.control = rt_ameba_wifi_control; - wifi_sta.parent.parent.parent.user_data = RT_NULL; - // - wifi_sta.idx = 0; - // - wifi_sta.parent.parent.eth_rx = RT_NULL; - wifi_sta.parent.parent.eth_tx = rt_ameba_wifi_tx; - - /* register wifi device */ - eth_device_init(&wifi_sta.parent.parent, WIFI_DEVICE_STA_NAME); -#endif - -#ifdef RT_USING_WLAN_AP - -#endif - - return RT_EOK; -} - diff --git a/bsp/amebaz/drivers/wlan/SConscript b/bsp/amebaz/drivers/wlan/SConscript index 9b4e410f5d..414abb50e6 100644 --- a/bsp/amebaz/drivers/wlan/SConscript +++ b/bsp/amebaz/drivers/wlan/SConscript @@ -6,10 +6,11 @@ CPPPATH = [cwd, str(Dir('#'))] src = [] if GetDepend(['RT_USING_LWIP']): - src += Split(''' - amebaz_wlan.c - ''') + src += Split(''' + drv_wifi.c + drv_wlan.c + ''') -group = DefineGroup('amebaz_wlan', src, depend = [''], CPPPATH = CPPPATH) +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH) Return('group') diff --git a/bsp/amebaz/drivers/wlan/amebaz_wlan.c b/bsp/amebaz/drivers/wlan/amebaz_wlan.c deleted file mode 100644 index 855be37fc7..0000000000 --- a/bsp/amebaz/drivers/wlan/amebaz_wlan.c +++ /dev/null @@ -1,642 +0,0 @@ -/* - * File : amebaz_wlan.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Change Logs: - * Date Author Notes - * 2017-5-30 Bernard the first version - * 2018-6-12 flyingcys add amebaz wlan interface - */ -#include -#include - -#include "wifi_structures.h" -#include "wifi_constants.h" -#include -#include - - -#define PASSWD_LEN 65 -#define SCAN_WAIT_TIME 10000 - -typedef enum -{ - WIFI_NONE, - WIFI_STATION, - WIFI_AP, -} rt_wlan_mode_t; - -struct rt_wlan_info -{ - rt_wlan_mode_t mode; /* wifi mode */ - rtw_security_t security; - - char *ssid; - uint8_t bssid[6]; - - /* maximal data rate */ - uint32_t datarate; - /* radio channel */ - uint16_t channel; - /* signal strength */ - int16_t rssi; -}; - -typedef struct rt_wlan_scan_result -{ - char ap_num; - struct rt_wlan_info *ap_table; -} rt_wlan_scan_result_t; - - -static rtw_network_info_t wifi_info = {0}; -static rtw_ap_info_t ap_info = {0}; -static unsigned char wifi_password[65] = {0}; -static unsigned char ap_password[PASSWD_LEN] = {0}; -static rt_sem_t scan_done_sem = RT_NULL; -static char *scan_buf = RT_NULL; -static int ApNum = 0; - -extern struct netif *rltk_wlan_get_netif(int idx); - -static void LwIP_ReleaseIP(uint8_t idx) -{ - struct ip_addr ipaddr; - struct ip_addr netmask; - struct ip_addr gw; - struct netif *pnetif = rltk_wlan_get_netif(idx); - - IP4_ADDR(&ipaddr, 0, 0, 0, 0); - IP4_ADDR(&netmask, 255, 255, 255, 0); - IP4_ADDR(&gw, 0, 0, 0, 0); - - netif_set_addr(pnetif, &ipaddr , &netmask, &gw); -} - -static rtw_result_t amebaz_scan_result_handler( rtw_scan_handler_result_t* malloced_scan_result ) -{ - if (malloced_scan_result->scan_complete != RTW_TRUE) { - rtw_scan_result_t* record = &malloced_scan_result->ap_details; - record->SSID.val[record->SSID.len] = 0; /* Ensure the SSID is null terminated */ - - ++ ApNum; - - if(malloced_scan_result->user_data) - memcpy((void *)((char *)malloced_scan_result->user_data+(ApNum-1)*sizeof(rtw_scan_result_t)), (char *)record, sizeof(rtw_scan_result_t)); - } - else - { - rt_kprintf("ap num:%d\n", ApNum); - - if(scan_done_sem) - { - rt_sem_release(scan_done_sem); - } - } - - return RTW_SUCCESS; -} - - -static int amebaz_wifi_do_scan(void) -{ - int ret = RTW_SUCCESS; - - rt_kprintf("wifi scan start...\n"); - - scan_buf = malloc(65*sizeof(rtw_scan_result_t)); - if(scan_buf == NULL){ - ret = RTW_BUFFER_UNAVAILABLE_TEMPORARY; - return -RT_ENOMEM; - } - - memset(scan_buf, 0, 65 * sizeof(rtw_scan_result_t)); - - if((ret = wifi_scan_networks(amebaz_scan_result_handler, scan_buf)) != RTW_SUCCESS){ - rt_kprintf("ERROR: wifi scan failed\n\r"); - - return -RT_ERROR; - } - - return RT_EOK; -} - -int amebaz_wifi_scan(struct rt_wlan_scan_result *dst) -{ - rt_uint32_t i; - rt_uint32_t j = 0; - - scan_done_sem = rt_sem_create("scandone", 0, RT_IPC_FLAG_FIFO); - if(scan_done_sem == RT_NULL) - return -RT_ENOMEM; - - if(amebaz_wifi_do_scan() != RT_EOK) - { - rt_kprintf("amebaz_wifi_do_scan failed...\n"); - return -RT_ERROR; - } - - if(rt_sem_take(scan_done_sem, rt_tick_from_millisecond(SCAN_WAIT_TIME)) != RT_EOK) - { - rt_kprintf("scan wait timeout...\n"); - return -RT_ETIMEOUT; - } - - if(scan_done_sem) - { - rt_sem_delete(scan_done_sem); - scan_done_sem = RT_NULL; - } - - rtw_scan_result_t *ptr = (rtw_scan_result_t *)scan_buf; - dst->ap_num = ApNum; - ApNum = 0; - - dst->ap_table = (struct rt_wlan_info *)rt_malloc(sizeof(struct rt_wlan_info) * dst->ap_num); - if(dst->ap_table == RT_NULL) - { - rt_kprintf("rt_malloc for ap table failed...\n"); - goto __exit; - } - - for(i = 0; i < dst->ap_num; i ++) - { - dst->ap_table[i].mode = 1; - dst->ap_table[i].security = ptr->security; - dst->ap_table[i].ssid = (char *)rt_malloc(33); - if(dst->ap_table[i].ssid == RT_NULL) - { - rt_kprintf("rt_malloc for ssid Failed! times:%d,total:%d\n",i,ApNum); - j = i; - goto __exit; - } - - memset(dst->ap_table[i].ssid, 0, 33); - memcpy(dst->ap_table[i].ssid, ptr->SSID.val, ptr->SSID.len); - memcpy(dst->ap_table[i].bssid, ptr->BSSID.octet, 6); - dst->ap_table[i].datarate = 0; - dst->ap_table[i].channel = ptr->channel; - dst->ap_table[i].rssi = ptr->signal_strength; - - ptr ++; - } - - if(scan_buf != RT_NULL) - { - rt_free(scan_buf); - scan_buf = RT_NULL; - } - - return RT_EOK; - -__exit: - - if(scan_buf != RT_NULL) - { - rt_free(scan_buf); - scan_buf = RT_NULL; - } - - if(dst->ap_table) - { - for(i = 0; i < j; i ++) - rt_free(dst->ap_table[i].ssid); - rt_free(dst->ap_table); - dst->ap_table = RT_NULL; - dst->ap_num = 0; - } - - return -RT_ERROR; -} - -void amebaz_wifi_info_init(void) -{ - memset(wifi_info.ssid.val, 0, sizeof(wifi_info.ssid.val)); - memset(wifi_info.bssid.octet, 0, 6); - memset(wifi_password, 0, sizeof(wifi_password)); - wifi_info.ssid.len = 0; - wifi_info.password = NULL; - wifi_info.password_len = 0; - wifi_info.key_id = -1; - - memset(ap_info.ssid.val, 0, sizeof(ap_info.ssid.val)); - ap_info.ssid.len = 0; - ap_info.security_type = RTW_SECURITY_UNKNOWN; - ap_info.password = NULL; - ap_info.password_len = 0; - ap_info.channel = 1; -} - -static int amebaz_wifi_set_sta_info(char *ssid, char *passwd) -{ - if(ssid == RT_NULL || strlen(ssid) > 32) - { - rt_kprintf("Invalid argument...\n"); - return -RT_EINVAL; - } - - strcpy(wifi_info.ssid.val, ssid); - wifi_info.ssid.len = strlen(ssid); - - if(passwd != NULL) - { - if(strlen(passwd) > 64) - { - rt_kprintf("Invalid argument...\n"); - return -RT_EINVAL; - } - strcpy(wifi_password, passwd); - wifi_info.password = wifi_password; - wifi_info.password_len = strlen(passwd); - } - else - wifi_info.password = RT_NULL; - - return RT_EOK; -} - -static int amebaz_wifi_set_ap_info(char *ssid, char *passwd, int channel) -{ - if(ssid == RT_NULL || strlen(ssid) > 32) - { - rt_kprintf("Invalid argument...\n"); - return -RT_EINVAL; - } - - strcpy(ap_info.ssid.val, ssid); - ap_info.ssid.len = strlen(ssid); - - if(passwd != NULL) - { - if(strlen(passwd) > 64) - { - rt_kprintf("Invalid argument...\n"); - return -RT_EINVAL; - } - strcpy(ap_password, passwd); - ap_info.password = ap_password; - ap_info.password_len = strlen(passwd); - } - else - ap_info.password = RT_NULL; - - ap_info.channel = channel; - return RT_EOK; -} - -static int amebaz_wifi_do_connect(void) -{ - int mode, ret; - char empty_bssid[6] = {0}; - char assoc_by_bssid = 0; - - rt_kprintf("amebaz wifi do connect start...\n"); - if(memcmp (wifi_info.bssid.octet, empty_bssid, 6)) - { - assoc_by_bssid = 1; - } - else if(wifi_info.ssid.val[0] == 0) - { - ret = RTW_BADARG; - return -RT_ERROR; - } - - if(wifi_info.password != RT_NULL) - { - if((wifi_info.key_id >= 0) && (wifi_info.key_id <= 3)) - { - wifi_info.security_type = RTW_SECURITY_WEP_PSK; - } - else - { - wifi_info.security_type = RTW_SECURITY_WPA2_AES_PSK; - } - } - else - { - wifi_info.security_type = RTW_SECURITY_OPEN; - } - - //Check if in AP mode - wext_get_mode(WLAN0_NAME, &mode); - if(mode == IW_MODE_MASTER) - { - #if 0 -#if CONFIG_LWIP_LAYER - dhcps_deinit(); -#endif - wifi_off(); - vTaskDelay(20); - if (wifi_on(RTW_MODE_STA) < 0){ - printf("\n\rERROR: Wifi on failed!"); - ret = RTW_ERROR; - goto EXIT; - } - #endif - } - - if(assoc_by_bssid) - { - rt_kprintf("Joining BSS by BSSID \"MAC_FMT\" ...\n", MAC_ARG(wifi_info.bssid.octet)); - ret = wifi_connect_bssid(wifi_info.bssid.octet, (char*)wifi_info.ssid.val, wifi_info.security_type, (char*)wifi_info.password, - ETH_ALEN, wifi_info.ssid.len, wifi_info.password_len, wifi_info.key_id, NULL); - } - else - { - rt_kprintf("\n\rJoining BSS by SSID %s...\n\r", (char*)wifi_info.ssid.val); - ret = wifi_connect((char*)wifi_info.ssid.val, wifi_info.security_type, - (char*)wifi_info.password, wifi_info.ssid.len, - wifi_info.password_len, wifi_info.key_id, NULL); - } - - if(ret!= RTW_SUCCESS) - { - if(ret == RTW_INVALID_KEY) - rt_kprintf("ERROR:Invalid Key\n"); - - rt_kprintf("ERROR: Can't connect to AP\n"); - return -RT_ERROR; - } - - rt_kprintf("now start dhcp...\n"); - netif_set_connected(1); - dhcp_start(netif_default); - rt_kprintf("dhcp success...\n"); - - return RT_EOK; -} - -int amebaz_wifi_connect(char *ssid, char *passwd) -{ - int ret; - - ret = amebaz_wifi_set_sta_info(ssid, passwd); - if(ret != RT_EOK) - { - amebaz_wifi_info_init(); - return ret; - } - - if(amebaz_wifi_do_connect() != RT_EOK) - { - amebaz_wifi_info_init(); - rt_kprintf("amebaz_wifi_do_connect failed...\n"); - return -RT_ERROR; - } - - amebaz_wifi_info_init(); - - return RT_EOK; -} - -static int amebaz_wifi_do_disconnect(void) -{ - int timeout = 20; - char essid[33]; - int ret = RTW_SUCCESS; - - if(wext_get_ssid(WLAN0_NAME, (unsigned char *) essid) < 0) - { - rt_kprintf("\nWIFI disconnected!\n"); - return -RT_ERROR; - } - - if((ret = wifi_disconnect()) < 0) - { - return -RT_ERROR; - } - - while(1) - { - if(wext_get_ssid(WLAN0_NAME, (unsigned char *) essid) < 0) - { - rt_kprintf("\nWIFI disconnected!\n"); - break; - } - - if(timeout == 0) - { - rt_kprintf("ERROR: Deassoc timeout!\n\r"); - ret = RTW_TIMEOUT; - break; - } - - vTaskDelay(10); - timeout --; - } - - LwIP_ReleaseIP(WLAN0_IDX); - - if(ret != RTW_SUCCESS) - return -RT_ERROR; - - rt_kprintf("amebaz wifi do disconnect success...\n"); - return RT_EOK; -} - -int amebaz_wifi_disconnect(void) -{ - int ret = RT_EOK; - - ret = amebaz_wifi_do_disconnect(); - if(ret != RT_EOK) - rt_kprintf("amebaz_wifi_do_disconnect failed...\n"); - - amebaz_wifi_info_init(); - - return ret; -} - -static int amebaz_wifi_do_ap_start(void) -{ - struct ip_addr ipaddr; - struct ip_addr netmask; - struct ip_addr gw; - struct netif *pnetif = rltk_wlan_get_netif(1); - - int timeout = 20; - int ret = RTW_SUCCESS; - - if(ap_info.ssid.val[0] == 0){ - rt_kprintf("ERROR: SSID can't be empty\n\r"); - return -RT_ERROR; - } - - if(ap_info.password == NULL) - { - ap_info.security_type = RTW_SECURITY_OPEN; - } - else - { - if(ap_info.password_len <= RTW_MAX_PSK_LEN && ap_info.password_len >= RTW_MIN_PSK_LEN) - { - ap_info.security_type = RTW_SECURITY_WPA2_AES_PSK; - } - else - { - rt_kprintf("ERROR: password length is between 8 to 64 \n"); - return -RT_ERROR; - } - } - -//#if CONFIG_LWIP_LAYER -// dhcps_deinit(); -// IP4_ADDR(&ipaddr, GW_ADDR0, GW_ADDR1, GW_ADDR2, GW_ADDR3); -// IP4_ADDR(&netmask, NETMASK_ADDR0, NETMASK_ADDR1 , NETMASK_ADDR2, NETMASK_ADDR3); -// IP4_ADDR(&gw, GW_ADDR0, GW_ADDR1, GW_ADDR2, GW_ADDR3); -// netif_set_addr(pnetif, &ipaddr, &netmask,&gw); -//#ifdef CONFIG_DONT_CARE_TP -// pnetif->flags |= NETIF_FLAG_IPSWITCH; -//#endif -//#endif - - wifi_off(); - vTaskDelay(20); - if (wifi_on(RTW_MODE_AP) < 0) - { - rt_kprintf("ERROR: Wifi on failed!\n"); - return -RT_ERROR; - } - rt_kprintf("Now start AP mode...\n"); - - if((ret = wifi_start_ap((char*)ap_info.ssid.val, ap_info.security_type, (char*)ap_info.password, ap_info.ssid.len, ap_info.password_len, ap_info.channel) ) < 0) - { - rt_kprintf("ERROR: Operation failed!"); - return -RT_ERROR; - } - - while(1) - { - char essid[33]; - - if(wext_get_ssid(WLAN0_NAME, (unsigned char *) essid) > 0) - { - if(strcmp((const char *) essid, (const char *)ap_info.ssid.val) == 0) - { - rt_kprintf("AP %s started...\n", ap_info.ssid.val); - ret = RTW_SUCCESS; - break; - } - } - - if(timeout == 0) - { - rt_kprintf("ERROR: Start AP timeout!"); - ret = RTW_TIMEOUT; - break; - } - - vTaskDelay(10); - timeout --; - } - - if(ret != RTW_SUCCESS) - return -RT_ERROR; - -//#if CONFIG_LWIP_LAYER - //LwIP_UseStaticIP(pnetif); -// dhcps_init(pnetif); -//#endif - - return RT_EOK; -} - -static int amebaz_wifi_do_ap_stop(void) -{ - return RT_EOK; -} - -int amebaz_wifi_ap_start(char *ssid, char *passwd, int channel) -{ - int ret; - - ret = amebaz_wifi_set_ap_info(ssid, passwd, channel); - if(ret != RT_EOK) - { - amebaz_wifi_info_init(); - return ret; - } - - if(amebaz_wifi_do_ap_start() != RT_EOK) - { - amebaz_wifi_info_init(); - rt_kprintf("amebaz_wifi_ap_start failed...\n"); - return -RT_ERROR; - } - - amebaz_wifi_info_init(); - return RT_EOK; -} - -int amebaz_wifi_ap_stop(void) -{ - int ret; - - if(amebaz_wifi_do_ap_stop() != RT_EOK) - { - amebaz_wifi_info_init(); - rt_kprintf("amebaz_wifi_ap_stop failed...\n"); - return -RT_ERROR; - } - - amebaz_wifi_info_init(); - return RT_EOK; -} - -int amebaz_wifi_get_rssi(void) -{ - int rssi = 0; - - wifi_get_rssi(&rssi); - - return rssi; -} - -void amebaz_wifi_set_channel(int channel) -{ - wifi_set_channel(channel); -} - -int amebaz_wifi_get_channel(void) -{ - int channel; - - wifi_get_channel(&channel); - - return channel; -} - -int amebaz_wifi_init(rt_wlan_mode_t mode) -{ - int ret; - rtw_mode_t rtw_mode; - - if(mode == WIFI_STATION) - rtw_mode = RTW_MODE_STA; - else if(mode == WIFI_AP) - rtw_mode = RTW_MODE_AP; - - if(wifi_on(mode) < 0) - return -RT_ERROR; - - if(wifi_set_autoreconnect(1) < 0) - return -RT_ERROR; - - return RT_EOK; -} - diff --git a/bsp/amebaz/drivers/wlan/amebaz_wlan.h b/bsp/amebaz/drivers/wlan/amebaz_wlan.h deleted file mode 100644 index e062797290..0000000000 --- a/bsp/amebaz/drivers/wlan/amebaz_wlan.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * File : amebaz_wlan.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Change Logs: - * Date Author Notes - * 2017-5-30 Bernard the first version - * 2018-6-12 flyingcys add amebaz wlan interface - */ - -#ifndef __AMEBAZ_WLAN_H__ -#define __AMEBAZ_WLAN_H__ - -int amebaz_wifi_scan(); - -void amebaz_wifi_info_init(void); - -int amebaz_wifi_set_sta_info(char *ssid, char *passwd); - -int amebaz_wifi_set_ap_info(char *ssid, char *passwd); - -int amebaz_wifi_connect(char *ssid, char *passwd); - -int amebaz_wifi_disconnect(void); - -int amebaz_wifi_ap_start(char *ssid, char *passwd, int channel); - -int amebaz_wifi_ap_stop(void); - -int amebaz_wifi_get_rssi(void); - -void amebaz_wifi_set_channel(int channel); - -int amebaz_wifi_get_channel(void); - -int amebaz_wifi_init(rt_wlan_mode_t mode); - -#endif /* __AMEBAZ_WLAN_H__ */ - diff --git a/bsp/amebaz/drivers/wlan/drv_wifi.c b/bsp/amebaz/drivers/wlan/drv_wifi.c new file mode 100644 index 0000000000..d4ab7e9a96 --- /dev/null +++ b/bsp/amebaz/drivers/wlan/drv_wifi.c @@ -0,0 +1,662 @@ +/* + * File : drv_wifi.c + * This file is part of RT-Thread RTOS + * COPYRIGHT (C) 2017, RT-Thread Development Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Change Logs: + * Date Author Notes + * 2017-5-30 Bernard the first version + * 2018-5-30 flyingcys add amebaz wifi driver + */ +#include +#include "board.h" +#include +#include +#include +#include "drv_wlan.h" +#include "drv_wifi.h" + +#define DBG_ENABLE +#define DBG_LEVEL DBG_INFO +#define DBG_SECTION_NAME "WIFI" +#define DBG_COLOR +#include + +#define MAX_ADDR_LEN (6) +#define RT_WLAN_SSID_MAX_LEN (32) + +#define WIFI_INIT_FLAG (0x1 << 0) +#define WIFI_MAC_FLAG (0x1 << 1) +#define WIFI_TYPE_STA (0) +#define WIFI_TYPE_AP (1) + +struct ameba_wifi +{ + struct rt_wlan_device *wlan; + rt_uint8_t dev_addr[MAX_ADDR_LEN]; + rt_uint8_t flag; + int connected; + int type; +}; + +extern unsigned char rltk_wlan_running(unsigned char idx); +extern struct sk_buff * rltk_wlan_get_recv_skb(int idx); +extern unsigned char rltk_wlan_check_isup(int idx); +extern void rltk_wlan_tx_inc(int idx); +extern struct sk_buff * rltk_wlan_alloc_skb(unsigned int total_len); +extern void rltk_wlan_send_skb(int idx, struct sk_buff *skb); +extern void rltk_wlan_tx_dec(int idx); +extern void rtw_event_register(int event, void (*fun)(char *buf, int len, int flags, void *user_data) , void *user_data); + +static const struct rt_wlan_dev_ops ops; + +static struct ameba_wifi wifi_sta; +static struct ameba_wifi wifi_ap; + +rt_inline struct ameba_wifi *rthw_wifi_get_dev(int idx) +{ + int mode = rthw_wifi_mode_get(); + + if (mode == 1) return &wifi_sta; + if (mode == 2) return &wifi_ap; + if (idx == 0) return &wifi_sta; + if (idx == 1) return &wifi_ap; + return RT_NULL; +} + +rt_inline int rthw_wifi_get_idx(struct ameba_wifi *wifi) +{ + int mode = rthw_wifi_mode_get(); + + if (mode == 1) return 0; + if (mode == 2) return 0; + return wifi->type; +} + +int rthw_wifi_register(struct ameba_wifi *wifi) +{ + struct rt_wlan_device *wlan = RT_NULL; + + if ((wifi->flag & WIFI_INIT_FLAG) == 0) + { + if (wifi->type == WIFI_TYPE_STA) + wlan = rt_wlan_dev_register(RT_WLAN_DEVICE_STA_NAME, &ops, 0, wifi); + if (wifi->type == WIFI_TYPE_AP) + wlan = rt_wlan_dev_register(RT_WLAN_DEVICE_AP_NAME, &ops, 0, wifi); + wifi->flag |= WIFI_INIT_FLAG; + wifi->wlan = wlan; + LOG_D("F:%s L:%d wifi:0x%08x wlan:0x%08x\n", __FUNCTION__, __LINE__, wifi, wlan); + } + return RT_EOK; +} + +void netif_post_sleep_processing(void) +{ +} + +void netif_pre_sleep_processing(void) +{ +} + +unsigned char *rltk_wlan_get_ip(int idx) +{ + struct ameba_wifi *wifi; + + wifi = rthw_wifi_get_dev(idx); + if (wifi == RT_NULL) + return RT_NULL; + + LOG_D("F:%s L:%d is run", __FUNCTION__, __LINE__); + + /* 这里留空了,会ä¸ä¼šç‚¸æœªçŸ¥ */ + return RT_NULL; +} + +int netif_is_valid_IP(int idx, unsigned char *ip_dest) +{ + LOG_D("F:%s L:%d is run ip: %d:%d:%d:%d", __FUNCTION__, __LINE__, + ip_dest[0], ip_dest[1], ip_dest[2], ip_dest[3]); + return 1; +} + +void rltk_wlan_set_netif_info(int idx, void *dev, rt_uint8_t *dev_addr) +{ + struct ameba_wifi *wifi = RT_NULL; + + wifi = rthw_wifi_get_dev(idx); + if (wifi == RT_NULL) + return; + LOG_D("F:%s L:%d wifi:0x%08x type:0x%x", __FUNCTION__, __LINE__, wifi, wifi->flag); + rt_memcpy(wifi->dev_addr, dev_addr, 6); + wifi->flag |= WIFI_MAC_FLAG; + rthw_wifi_register(wifi); + LOG_D("wifi type:%d", wifi->type); + LOG_D("idx:%d MAC %02x:%02x:%02x:%02x:%02x:%02x", idx, dev_addr[0], dev_addr[1], dev_addr[2], dev_addr[3], dev_addr[4], dev_addr[5]); +} + +static void rtw_connect_callbackfn(char *buf, int len, int flags, void *user_data) +{ + struct ameba_wifi *wifi = user_data; + + LOG_D("L:%d wifi connect callback flags:%d user_data:%08x", __LINE__, flags, user_data); + wifi->connected = 1; + rt_wlan_dev_indicate_event_handle(wifi->wlan, RT_WLAN_DEV_EVT_CONNECT, RT_NULL); +} + +static void rtw_connect_fail_callbackfn(char *buf, int len, int flags, void *user_data) +{ + struct ameba_wifi *wifi = user_data; + + LOG_D("L:%d wifi connect callback flags:%d", __LINE__, flags); + wifi->connected = 0; + rt_wlan_dev_indicate_event_handle(wifi->wlan, RT_WLAN_DEV_EVT_CONNECT_FAIL, RT_NULL); +} + +static void rtw_disconnect_callbackfn(char *buf, int len, int flags, void *user_data) +{ + struct ameba_wifi *wifi = user_data; + + LOG_D("L:%d wifi disconnect callback flags:%d", __LINE__, flags); + wifi->connected = 0; + rt_wlan_dev_indicate_event_handle(wifi->wlan, RT_WLAN_DEV_EVT_DISCONNECT, RT_NULL); +} + +static void rtw_sta_assoc_callbackfn(char *buf, int len, int flags, void *user_data) +{ + LOG_D("L:%d wifi sta assoc callback flags:%d", __LINE__, flags); +} + +static void rtw_sta_disassoc_callbackfn(char *buf, int len, int flags, void *user_data) +{ + LOG_D("L:%d wifi sta assoc callback flags:%d buf:%08x %08x", __LINE__, flags, *((rt_uint32_t*)buf), *((rt_uint32_t*)buf + 4)); +} + +void netif_rx(int idx, unsigned int len) +{ + struct ameba_wifi *wifi = RT_NULL; + struct sk_buff *skb = RT_NULL; + + wifi = rthw_wifi_get_dev(idx); + if (wifi == RT_NULL) + return; + + LOG_D("F:%s L:%d idx:%d len:%d", __FUNCTION__, __LINE__, idx, len); + if((!wifi->connected) || (!rltk_wlan_running(idx))) + return; + + skb = (struct sk_buff *)rltk_wlan_get_recv_skb(idx); + if(!skb) + { + LOG_D("netif_rx rltk_wlan_get_recv_skb NULL."); + return; + } + rt_wlan_dev_report_data(wifi->wlan, skb->data, len); +} + +static rt_wlan_security_t security_map_from_ameba(rthw_security_t security) +{ + rt_wlan_security_t result = SECURITY_OPEN; + + switch (security) + { + case RTHW_SECURITY_OPEN: result = SECURITY_OPEN; break; + case RTHW_SECURITY_WEP_PSK: result = SECURITY_WEP_PSK; break; + case RTHW_SECURITY_WEP_SHARED: result = SECURITY_WEP_SHARED; break; + case RTHW_SECURITY_WPA_TKIP_PSK: result = SECURITY_WPA_TKIP_PSK; break; + case RTHW_SECURITY_WPA_AES_PSK: result = SECURITY_WPA_AES_PSK; break; + case RTHW_SECURITY_WPA2_AES_PSK: result = SECURITY_WPA2_AES_PSK; break; + case RTHW_SECURITY_WPA2_TKIP_PSK: result = SECURITY_WPA2_TKIP_PSK; break; + case RTHW_SECURITY_WPA2_MIXED_PSK: result = SECURITY_WPA2_MIXED_PSK; break; + case RTHW_SECURITY_WPA_WPA2_MIXED: result = SECURITY_WPA2_AES_PSK; break; + case RTHW_SECURITY_WPS_OPEN: result = SECURITY_WPS_OPEN; break; + case RTHW_SECURITY_WPS_SECURE: result = SECURITY_WPS_SECURE; break; + default: result = -1; break; + } + + return result; +} + +static rthw_security_t security_map_from_rtthread(rt_wlan_security_t security) +{ + rt_wlan_security_t result = RTHW_SECURITY_OPEN; + + switch (security) + { + case SECURITY_OPEN: result = RTHW_SECURITY_OPEN; break; + case SECURITY_WEP_PSK: result = RTHW_SECURITY_WEP_PSK; break; + case SECURITY_WEP_SHARED: result = RTHW_SECURITY_WEP_SHARED; break; + case SECURITY_WPA_TKIP_PSK: result = RTHW_SECURITY_WPA_TKIP_PSK; break; + case SECURITY_WPA_AES_PSK: result = RTHW_SECURITY_WPA_AES_PSK; break; + case SECURITY_WPA2_AES_PSK: result = RTHW_SECURITY_WPA2_AES_PSK; break; + case SECURITY_WPA2_TKIP_PSK: result = RTHW_SECURITY_WPA2_TKIP_PSK; break; + case SECURITY_WPA2_MIXED_PSK: result = RTHW_SECURITY_WPA2_MIXED_PSK; break; + case SECURITY_WPS_OPEN: result = RTHW_SECURITY_WPS_OPEN; break; + case SECURITY_WPS_SECURE: result = RTHW_SECURITY_WPS_SECURE; break; + default: result = -1; break; + } + + return result; +} + +static void rt_ameba_wifi_scan_callback(struct rthw_wlan_info *info, void *user_data) +{ + struct rt_wlan_info wlan_info = { 0 }; + struct rt_wlan_buff buff; + struct ameba_wifi *wifi = user_data; + + if (info == RT_NULL) + { + rt_wlan_dev_indicate_event_handle(wifi->wlan, RT_WLAN_DEV_EVT_SCAN_DONE, RT_NULL); + return; + } + memcpy(&wlan_info.bssid[0], info->bssid, 6); + strncpy(&wlan_info.ssid.val[0], info->ssid, RT_WLAN_SSID_MAX_LEN); + wlan_info.ssid.len = strlen(&wlan_info.ssid.val[0]); + wlan_info.band = info->band == RTHW_802_11_BAND_2_4GHZ ? RTHW_802_11_BAND_2_4GHZ : RTHW_802_11_BAND_5GHZ; + wlan_info.channel = info->channel; + wlan_info.datarate = info->datarate * 1000; + wlan_info.security = security_map_from_ameba(info->security); + wlan_info.rssi = info->rssi; + + buff.data = &wlan_info; + buff.len = sizeof(wlan_info); + rt_wlan_dev_indicate_event_handle(wifi->wlan, RT_WLAN_DEV_EVT_SCAN_REPORT, &buff); +} + +static void rthw_wlan_monitor_callback(rt_uint8_t *data, int len, void *user_data) +{ + rt_wlan_dev_promisc_handler(wifi_sta.wlan, data, len); +} + +static rt_err_t rthw_wlan_init (struct rt_wlan_device *wlan) +{ + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + return RT_EOK; +} + +static rt_err_t rthw_wlan_mode (struct rt_wlan_device *wlan, rt_wlan_mode_t mode) +{ + struct ameba_wifi *wifi = (struct ameba_wifi *)(wlan->user_data); + + LOG_D("F:%s L:%d mode:%d", __FUNCTION__, __LINE__, mode); + + if (mode == RT_WLAN_STATION) + { + if (wifi->type != WIFI_TYPE_STA) + { + LOG_D("this wlan not support sta mode"); + return -RT_ERROR; + } + } + else if (mode == RT_WLAN_AP) + { + if (wifi->type != WIFI_TYPE_AP) + { + LOG_D("this wlan not support ap mode"); + return -RT_ERROR; + } + } + + return RT_EOK; +} + +static rt_err_t rthw_wlan_scan (struct rt_wlan_device *wlan, struct rt_scan_info *scan_info) +{ + struct ameba_wifi *wifi = (struct ameba_wifi *)(wlan->user_data); + + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + LOG_D("F:%s L:%d wifi:0x%08x type:0x%x", __FUNCTION__, __LINE__, wifi, wifi->type); + + if (wifi->type != WIFI_TYPE_STA) + { + LOG_D("this wlan not support scan mode"); + return -RT_ERROR; + } + if (rthw_wifi_mode_get() == RTHW_MODE_NONE) + { + if(rthw_wifi_start(RTHW_MODE_STA_AP) != RT_EOK) + { + LOG_D("L:%d wifistart failed...", __LINE__); + return -1; + } + } + rthw_wifi_scan(rt_ameba_wifi_scan_callback, wifi); + return RT_EOK; +} + +static rt_err_t rthw_wlan_join (struct rt_wlan_device *wlan, struct rt_sta_info *sta_info) +{ + struct ameba_wifi *wifi = (struct ameba_wifi *)(wlan->user_data); + int result = 0, i; + char *ssid = RT_NULL, *key = RT_NULL; + + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + if (wifi->type != WIFI_TYPE_STA) + { + LOG_E("this wlan not support sta mode"); + return -RT_ERROR; + } + if ((rthw_wifi_mode_get() != RTHW_MODE_STA) && (rthw_wifi_mode_get() != RTHW_MODE_STA_AP)) + { + rthw_wifi_stop(); + rt_thread_delay(RT_TICK_PER_SECOND / 10); + if (rthw_wifi_start(RTHW_MODE_STA_AP) != RT_EOK) + { + LOG_E("wifi on failed, join fail"); + return -RT_ERROR; + } + } + for (i = 0; i < RT_WLAN_BSSID_MAX_LENGTH; i++) + { + if (sta_info->bssid[i] != 0xff || sta_info->bssid[i] != 0x00) + break; + } + if (i < RT_WLAN_BSSID_MAX_LENGTH) + { + if (sta_info->ssid.len > 0) + ssid = &sta_info->ssid.val[0]; + if (sta_info->key.len > 0) + key = &sta_info->key.val[0]; + LOG_D("bssid connect bssid: %02x:%02x:%02x:%02x:%02x:%02x ssid:%s ssid_len:%d key:%s key_len%d", + sta_info->bssid[0],sta_info->bssid[1],sta_info->bssid[2],sta_info->bssid[3],sta_info->bssid[4],sta_info->bssid[5], + ssid, + sta_info->ssid.len, + key, + sta_info->key.len + ); + result = rthw_wifi_connect_bssid(sta_info->bssid, ssid, sta_info->ssid.len, key, sta_info->key.len, security_map_from_rtthread(sta_info->security)); + } + else + { + result = rthw_wifi_connect(sta_info->ssid.val, sta_info->ssid.len, sta_info->key.val, sta_info->key.len, security_map_from_rtthread(sta_info->security)); + } + if (result != 0) + { + LOG_E("amebaz_wifi_connect failed..."); + return -RT_ERROR; + } + // netif_set_connected((struct ameba_wifi *)wlan, 1); + LOG_D("amebaz_wifi_connect do"); + return RT_EOK; +} + +static rt_err_t rthw_wlan_softap (struct rt_wlan_device *wlan, struct rt_ap_info *ap_info) +{ + struct ameba_wifi *wifi = (struct ameba_wifi *)(wlan->user_data); + + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + + if (wifi->type != WIFI_TYPE_AP) + { + LOG_E("this wlan not support ap mode"); + return -RT_ERROR; + } + if (rthw_wifi_ap_start(&ap_info->ssid.val[0], &ap_info->key.val[0], ap_info->channel) != 0) + { + rt_wlan_dev_indicate_event_handle(wifi->wlan, RT_WLAN_DEV_EVT_AP_STOP, RT_NULL); + wifi->connected = 0; + return -RT_ERROR; + } + rt_wlan_dev_indicate_event_handle(wifi->wlan, RT_WLAN_DEV_EVT_AP_START, RT_NULL); + wifi->connected = 1; + return RT_EOK; +} + +static rt_err_t rthw_wlan_disconnect (struct rt_wlan_device *wlan) +{ + struct ameba_wifi *wifi = (struct ameba_wifi *)(wlan->user_data); + + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + + if (wifi->type != WIFI_TYPE_STA) + { + LOG_E("this wlan not support sta mode"); + return -RT_ERROR; + } + wifi->connected = 0; + rthw_wifi_sta_disconnect(); + rt_wlan_dev_indicate_event_handle(wifi->wlan, RT_WLAN_DEV_EVT_AP_STOP, RT_NULL); + return RT_EOK; +} + +static rt_err_t rthw_wlan_ap_stop (struct rt_wlan_device *wlan) +{ + struct ameba_wifi *wifi = (struct ameba_wifi *)(wlan->user_data); + + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + + if (wifi->type != WIFI_TYPE_AP) + { + LOG_E("this wlan not support ap mode"); + return -RT_ERROR; + } + + rthw_wifi_ap_disconnect(); + return RT_EOK; +} + +static rt_err_t rthw_wlan_ap_deauth (struct rt_wlan_device *wlan, rt_uint8_t mac[]) +{ + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + return RT_EOK; +} + +static rt_err_t rthw_wlan_scan_stop (struct rt_wlan_device *wlan) +{ + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + return RT_EOK; +} + +static int rthw_wlan_get_rssi (struct rt_wlan_device *wlan) +{ + struct ameba_wifi *wifi = (struct ameba_wifi *)(wlan->user_data); + + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + + if (wifi->type != WIFI_TYPE_STA) + { + LOG_E("this wlan not support sta mode"); + return -RT_ERROR; + } + + return rthw_wifi_rssi_get(); +} + +static rt_err_t rthw_wlan_set_powersave (struct rt_wlan_device *wlan, int level) +{ + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + return RT_EOK; +} + +static int rthw_wlan_get_powersave (struct rt_wlan_device *wlan) +{ + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + return 0; +} + +static rt_err_t rthw_wlan_cfg_promisc (struct rt_wlan_device *wlan, rt_bool_t start) +{ + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + + if(start) + { + rthw_wifi_monitor_callback_set(rthw_wlan_monitor_callback); + rthw_wifi_monitor_enable(1); + } + else + { + rthw_wifi_monitor_callback_set(RT_NULL); + rthw_wifi_monitor_enable(0); + } + return RT_EOK; +} + +static rt_err_t rthw_wlan_cfg_filter (struct rt_wlan_device *wlan, struct rt_wlan_filter *filter) +{ + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + return RT_EOK; +} + +static rt_err_t rthw_wlan_set_channel (struct rt_wlan_device *wlan, int channel) +{ + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + + rthw_wifi_channel_set(channel); + + return RT_EOK; +} + +static int rthw_wlan_get_channel (struct rt_wlan_device *wlan) +{ + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + + return rthw_wifi_channel_get(); +} + +static rt_err_t rthw_wlan_set_country (struct rt_wlan_device *wlan, rt_country_code_t country_code) +{ + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + return RT_EOK; +} + +static rt_country_code_t rthw_wlan_get_country (struct rt_wlan_device *wlan) +{ + LOG_D("F:%s L:%d\n", __FUNCTION__, __LINE__); + return RT_EOK; +} + +static rt_err_t rthw_wlan_set_mac (struct rt_wlan_device *wlan, rt_uint8_t mac[]) +{ + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + return -RT_ERROR; +} + +static rt_err_t rthw_wlan_get_mac (struct rt_wlan_device *wlan, rt_uint8_t mac[]) +{ + struct ameba_wifi *wifi = (struct ameba_wifi *)wlan->user_data; + + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + if(mac == RT_NULL) + { + return -RT_ERROR; + } + memcpy(mac, wifi->dev_addr, MAX_ADDR_LEN); + return RT_EOK; +} + +static int rthw_wlan_recv (struct rt_wlan_device *wlan, void *buff, int len) +{ + LOG_D("F:%s L:%d", __FUNCTION__, __LINE__); + return RT_EOK; +} + +static int rthw_wlan_send (struct rt_wlan_device *wlan, void *buff, int len) +{ + struct ameba_wifi *wifi = (struct ameba_wifi *)wlan->user_data; + int idx = rthw_wifi_get_idx(wifi); + rt_base_t level; + struct sk_buff *skb = RT_NULL; + + LOG_D("F:%s L:%d len:%d", __FUNCTION__, __LINE__, len); + + level = rt_hw_interrupt_disable(); + if(!wifi->connected || !rltk_wlan_check_isup(idx)) + { + rt_hw_interrupt_enable(level); + return -RT_ERROR; + } + rltk_wlan_tx_inc(idx); + rt_hw_interrupt_enable(level); + + skb = (struct sk_buff *)rltk_wlan_alloc_skb(len); + if (skb == RT_NULL) + { + LOG_W("rltk_wlan_alloc_skb NULL for WIFI TX."); + goto exit; + } + /* copy buff to a whole ETH frame */ + memcpy(skb->tail, buff, len); + skb_put(skb, len); + rltk_wlan_send_skb(idx, skb); + +exit: + level = rt_hw_interrupt_disable(); + rltk_wlan_tx_dec(idx); + rt_hw_interrupt_enable(level); + + LOG_D("F:%s L:%d end", __FUNCTION__, __LINE__); + + return RT_EOK; +} + +static const struct rt_wlan_dev_ops ops = +{ + .wlan_init = rthw_wlan_init , + .wlan_mode = rthw_wlan_mode , + .wlan_scan = rthw_wlan_scan , + .wlan_join = rthw_wlan_join , + .wlan_softap = rthw_wlan_softap , + .wlan_disconnect = rthw_wlan_disconnect , + .wlan_ap_stop = rthw_wlan_ap_stop , + .wlan_ap_deauth = rthw_wlan_ap_deauth , + .wlan_scan_stop = rthw_wlan_scan_stop , + .wlan_get_rssi = rthw_wlan_get_rssi , + .wlan_set_powersave = rthw_wlan_set_powersave , + .wlan_get_powersave = rthw_wlan_get_powersave , + .wlan_cfg_promisc = rthw_wlan_cfg_promisc , + .wlan_cfg_filter = rthw_wlan_cfg_filter , + .wlan_set_channel = rthw_wlan_set_channel , + .wlan_get_channel = rthw_wlan_get_channel , + .wlan_set_country = rthw_wlan_set_country , + .wlan_get_country = rthw_wlan_get_country , + .wlan_set_mac = rthw_wlan_set_mac , + .wlan_get_mac = rthw_wlan_get_mac , + .wlan_recv = rthw_wlan_recv , + .wlan_send = rthw_wlan_send , +}; + +int rthw_wifi_low_init(void) +{ + static rt_int8_t _init_flag = 0; + + if (_init_flag) + { + return 1; + } + rt_memset(&wifi_sta, 0, sizeof(wifi_sta)); + rt_memset(&wifi_ap, 0, sizeof(wifi_ap)); + wifi_sta.type = WIFI_TYPE_STA; + wifi_ap.type = WIFI_TYPE_AP; + if(rthw_wifi_start(RTHW_MODE_STA_AP) != RT_EOK) + { + LOG_E("amebaz_wifi_start failed..."); + return -1; + } + LOG_I("amebaz_wifi_start success"); + LOG_D("F:%s L:%d wifi_sta:0x%08x wifi_ap:0x%08x", __FUNCTION__, __LINE__, &wifi_sta, &wifi_ap); + + wifi_reg_event_handler(0, rtw_connect_callbackfn, &wifi_sta); + wifi_reg_event_handler(1, rtw_disconnect_callbackfn, &wifi_sta); + + wifi_reg_event_handler(8, rtw_sta_assoc_callbackfn, &wifi_ap); + wifi_reg_event_handler(9, rtw_sta_disassoc_callbackfn, &wifi_ap); + + _init_flag = 1; + + return 0; +} +INIT_DEVICE_EXPORT(rthw_wifi_low_init); diff --git a/bsp/amebaz/drivers/drv_wifi.h b/bsp/amebaz/drivers/wlan/drv_wifi.h similarity index 97% rename from bsp/amebaz/drivers/drv_wifi.h rename to bsp/amebaz/drivers/wlan/drv_wifi.h index e2ca03cd1c..b92658d470 100644 --- a/bsp/amebaz/drivers/drv_wifi.h +++ b/bsp/amebaz/drivers/wlan/drv_wifi.h @@ -25,7 +25,7 @@ #ifndef __DRV_WIFI_H__ #define __DRV_WIFI_H__ -int rt_hw_wifi_init(void); - +int rthw_wifi_low_init(void); + #endif /* __DRV_WIFI_H__ */ diff --git a/bsp/amebaz/drivers/wlan/drv_wlan.c b/bsp/amebaz/drivers/wlan/drv_wlan.c new file mode 100644 index 0000000000..f6bb30de9a --- /dev/null +++ b/bsp/amebaz/drivers/wlan/drv_wlan.c @@ -0,0 +1,375 @@ +/* + * File : drv_wlan.c + * This file is part of RT-Thread RTOS + * COPYRIGHT (C) 2017, RT-Thread Development Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Change Logs: + * Date Author Notes + * 2018-7-10 tyx the first version + */ + +#include "wifi_structures.h" +#include "wifi_constants.h" +#include +#include + +#ifdef _LITTLE_ENDIAN +#undef _LITTLE_ENDIAN +#endif + +#include +#include +#include +#include +#include "drv_wlan.h" + +// #define SCAN_WAIT_TIME (10000) + +struct scan_user_data +{ + struct rt_completion done; + scan_callback_fn fun; + void *data; +}; + +extern rthw_mode_t wifi_mode; + +rthw_mode_t rthw_wifi_mode_get(void) +{ + return wifi_mode; +} + +int rthw_wifi_stop(void) +{ + return wifi_off(); +} + +int rthw_wifi_start(rthw_mode_t mode) +{ + if(wifi_on(mode) < 0) + { + rt_kprintf("ERROR: wifi_on failed\n"); + return -1; + } + return 0; +} + +int rthw_wifi_connect(char *ssid, int ssid_len, char *password, int pass_len, rthw_security_t security_type) +{ + int mode; + rtw_wifi_setting_t setting; + + mode = rthw_wifi_mode_get(); + if ((mode != RTHW_MODE_STA) && (mode != RTHW_MODE_STA_AP)) + { + return -1; + } + if(wext_get_mode(WLAN0_NAME, &mode) < 0) + { + rt_kprintf("L:%d wifi get mode err\n", __LINE__); + return -1; + } + if(wifi_connect(ssid, security_type, password, ssid_len, pass_len, -1, NULL) != RTW_SUCCESS) + { + rt_kprintf("wifi connect fail\n"); + return -1; + } + rt_kprintf("wifi connect success\n"); + rt_kprintf("Show Wi-Fi information\n"); + wifi_get_setting(WLAN0_NAME,&setting); + wifi_show_setting(WLAN0_NAME,&setting); + return 0; +} + +int rthw_wifi_connect_bssid(char *bssid, char *ssid, int ssid_len, char *password, int pass_len, rthw_security_t security_type) +{ + int mode; + rtw_wifi_setting_t setting; + + mode = rthw_wifi_mode_get(); + if ((mode != RTHW_MODE_STA) && (mode != RTHW_MODE_STA_AP)) + { + return -1; + } + if(wext_get_mode(WLAN0_NAME, &mode) < 0) + { + rt_kprintf("L:%d wifi get mode err\n", __LINE__); + return -1; + } + + if(wifi_connect_bssid(bssid, ssid, security_type, password, 6, ssid_len, pass_len, -1, NULL) != RTW_SUCCESS) + { + rt_kprintf("wifi connect fail\n"); + return -1; + } + rt_kprintf("wifi connect success\n"); + rt_kprintf("Show Wi-Fi information\n"); + wifi_get_setting(WLAN0_NAME,&setting); + wifi_show_setting(WLAN0_NAME,&setting); + return 0; +} + +int rthw_wifi_ap_start(char *ssid, char *password, int channel) +{ + int mode = 0, timeout = 20; + rtw_security_t security_type = RTW_SECURITY_WPA2_AES_PSK; + char *name = RT_NULL; + + mode = rthw_wifi_mode_get(); + if (mode == RTHW_MODE_AP) + { + name = WLAN0_NAME; + } + else if (mode == RTHW_MODE_STA_AP) + { + name = WLAN1_NAME; + } + else + { + return -1; + } + + if(wext_get_mode(name, &mode) < 0) + { + rt_kprintf("L:%d wifi get mode err\n", __LINE__); + return -1; + } + if (password == RT_NULL) + { + security_type = RTW_SECURITY_OPEN; + } + + if(wifi_start_ap(ssid, security_type, password, rt_strlen(ssid), rt_strlen(password), 6) != 0) + { + rt_kprintf("ERROR: wifi_start_ap failed\n"); + return -1; + } + + while(1) + { + char essid[33]; + if(wext_get_ssid(name, (unsigned char *) essid) > 0) + { + if(strcmp((const char *) essid, (const char *)ssid) == 0) + { + rt_kprintf("%s started\n", ssid); + break; + } + } + if(timeout == 0) + { + rt_kprintf("Start AP timeout\n"); + return -1; + } + rt_thread_delay(1 * RT_TICK_PER_SECOND); + timeout --; + } + + return 0; +} + +static int rthw_wifi_disconnect(char *name) +{ + char essid[33]; + int timeout = 20; + const rt_uint8_t null_bssid[ETH_ALEN + 2] = {0, 0, 0, 0, 0, 1, 0, 0}; + + if (name == RT_NULL) + return -1; + + if (wext_get_ssid(name, (unsigned char *) essid) < 0) + { + rt_kprintf("\nWIFI disconnected!\n"); + return -1; + } + + if (wext_set_bssid(name, null_bssid) < 0) + { + rt_kprintf("Failed to set bogus BSSID to disconnect"); + return -1; + } + + while (1) + { + if(wext_get_ssid(name, (unsigned char *) essid) < 0) + { + rt_kprintf("WIFI disconnected!\n"); + break; + } + + if(timeout == 0) + { + rt_kprintf("ERROR: Deassoc timeout!\n"); + return -1; + } + + rt_thread_delay(10); + timeout --; + } + return 0; +} + +int rthw_wifi_sta_disconnect(void) +{ + int mode = 0; + char *name = RT_NULL; + + mode = rthw_wifi_mode_get(); + if (mode == RTHW_MODE_STA) + { + name = WLAN0_NAME; + } + else if (mode == RTHW_MODE_STA_AP) + { + name = WLAN0_NAME; + } + else + { + return -1; + } + return rthw_wifi_disconnect(name); +} + +int rthw_wifi_ap_disconnect(void) +{ + int mode = 0; + char *name = RT_NULL; + + mode = rthw_wifi_mode_get(); + if (mode == RTHW_MODE_AP) + { + name = WLAN0_NAME; + } + else if (mode == RTHW_MODE_STA_AP) + { + name = WLAN1_NAME; + } + else + { + return -1; + } + return rthw_wifi_disconnect(name); +} + +int rthw_wifi_rssi_get(void) +{ + int rssi = 0; + wifi_get_rssi(&rssi); + return rssi; +} + +void rthw_wifi_channel_set(int channel) +{ + wifi_set_channel(channel); +} + +int rthw_wifi_channel_get(void) +{ + int channel; + wifi_get_channel(&channel); + return channel; +} + +static rtw_result_t rthw_wifi_scan_result_handler( rtw_scan_handler_result_t* malloced_scan_result) +{ + struct scan_user_data* user_data = malloced_scan_result->user_data; + struct rthw_wlan_info info = { 0 }; + + if (malloced_scan_result->scan_complete != RTW_TRUE) + { + rtw_scan_result_t* record = &malloced_scan_result->ap_details; + + if (user_data->fun != RT_NULL) + { + record->SSID.val[record->SSID.len] = 0; /* Ensure the SSID is null terminated */ + info.ssid = record->SSID.val; + info.bssid = record->BSSID.octet; + info.band = record->band; + info.datarate = 0; + info.channel = record->channel; + info.rssi = record->signal_strength; + info.security = record->security; + user_data->fun(&info, user_data->data); + } + } + else + { + user_data->fun(RT_NULL, user_data->data); + rt_free(user_data); + rt_kprintf("scan ap down\n"); + } + + return RTW_SUCCESS; +} + +int rthw_wifi_scan(scan_callback_fn fun, void *data) +{ + struct scan_user_data *user_data; + + if (fun == RT_NULL) + { + rt_kprintf("scan callback fun is null\n"); + return -1; + } + user_data = rt_malloc(sizeof(struct scan_user_data)); + if (user_data == RT_NULL) + { + rt_kprintf("wifi scan malloc fail\n"); + return -1; + } + user_data->fun = fun; + user_data->data = data; + + if (wifi_scan_networks(rthw_wifi_scan_result_handler, user_data) != RTW_SUCCESS) + { + rt_kprintf("ERROR: wifi scan failed\n\r"); + return -1; + } + + return 0; +} + +static rthw_wlan_monitor_callback_t monitor_callback; + +static void rthw_wifi_promisc_callback(unsigned char *buf, unsigned int len, void* userdata) +{ + if (monitor_callback) + { + monitor_callback(buf, len, RT_NULL); + } +} + +void rthw_wifi_monitor_callback_set(rthw_wlan_monitor_callback_t callback) +{ + monitor_callback = callback; +} + +void rthw_wifi_monitor_enable(int enable) +{ + if (enable) + { + wifi_enter_promisc_mode(); + wifi_set_promisc(RTW_PROMISC_ENABLE, rthw_wifi_promisc_callback, 1); + rt_kprintf("%s run \n", __FUNCTION__); + } + else + { + wifi_set_promisc(RTW_PROMISC_DISABLE, RT_NULL, 0); + rthw_wifi_stop(); + } +} + diff --git a/bsp/amebaz/drivers/wlan/drv_wlan.h b/bsp/amebaz/drivers/wlan/drv_wlan.h new file mode 100644 index 0000000000..ca9ae09798 --- /dev/null +++ b/bsp/amebaz/drivers/wlan/drv_wlan.h @@ -0,0 +1,101 @@ +/* + * File : drv_wlan.h + * This file is part of RT-Thread RTOS + * COPYRIGHT (C) 2017, RT-Thread Development Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Change Logs: + * Date Author Notes + * 2018-7-10 tyx the first version + */ + +#ifndef __DRV_WLAN_H__ +#define __DRV_WLAN_H__ + +#include + +typedef enum +{ + RTHW_MODE_NONE = 0, + RTHW_MODE_STA, + RTHW_MODE_AP, + RTHW_MODE_STA_AP, + RTHW_MODE_PROMISC, + RTHW_MODE_P2P +}rthw_mode_t; + +#define SHARED_ENABLED 0x00008000 +#define WPA_SECURITY 0x00200000 +#define WPA2_SECURITY 0x00400000 +#define WPS_ENABLED 0x10000000 +#define WEP_ENABLED 0x0001 +#define TKIP_ENABLED 0x0002 +#define AES_ENABLED 0x0004 +#define WSEC_SWFLAG 0x0008 + +typedef enum { + RTHW_SECURITY_OPEN = 0, /**< Open security */ + RTHW_SECURITY_WEP_PSK = WEP_ENABLED, /**< WEP Security with open authentication */ + RTHW_SECURITY_WEP_SHARED = ( WEP_ENABLED | SHARED_ENABLED ), /**< WEP Security with shared authentication */ + RTHW_SECURITY_WPA_TKIP_PSK = ( WPA_SECURITY | TKIP_ENABLED ), /**< WPA Security with TKIP */ + RTHW_SECURITY_WPA_AES_PSK = ( WPA_SECURITY | AES_ENABLED ), /**< WPA Security with AES */ + RTHW_SECURITY_WPA2_AES_PSK = ( WPA2_SECURITY | AES_ENABLED ), /**< WPA2 Security with AES */ + RTHW_SECURITY_WPA2_TKIP_PSK = ( WPA2_SECURITY | TKIP_ENABLED ), /**< WPA2 Security with TKIP */ + RTHW_SECURITY_WPA2_MIXED_PSK = ( WPA2_SECURITY | AES_ENABLED | TKIP_ENABLED ), /**< WPA2 Security with AES & TKIP */ + RTHW_SECURITY_WPA_WPA2_MIXED = ( WPA_SECURITY | WPA2_SECURITY ), /**< WPA/WPA2 Security */ + + RTHW_SECURITY_WPS_OPEN = WPS_ENABLED, /**< WPS with open security */ + RTHW_SECURITY_WPS_SECURE = (WPS_ENABLED | AES_ENABLED), /**< WPS with AES security */ + + RTHW_SECURITY_UNKNOWN = -1, /**< May be returned by scan function if security is unknown. Do not pass this to the join function! */ + + RTHW_SECURITY_FORCE_32_BIT = 0x7fffffff /**< Exists only to force rtw_security_t type to 32 bits */ +} rthw_security_t; + +typedef enum { + RTHW_802_11_BAND_5GHZ = 0, /**< Denotes 5GHz radio band */ + RTHW_802_11_BAND_2_4GHZ = 1 /**< Denotes 2.4GHz radio band */ +} rthw_802_11_band_t; + +struct rthw_wlan_info +{ + char *ssid; + rt_uint8_t *bssid; + rthw_802_11_band_t band; + rt_uint32_t datarate; + rt_uint16_t channel; + rt_int16_t rssi; + rthw_security_t security; +}; + +typedef void (*scan_callback_fn)(struct rthw_wlan_info *info, void *user_data); +typedef void (*rthw_wlan_monitor_callback_t)(rt_uint8_t *data, int len, void *user_data); + +rthw_mode_t rthw_wifi_mode_get(void); +int rthw_wifi_stop(void); +int rthw_wifi_start(rthw_mode_t mode); +int rthw_wifi_connect(char *ssid, int ssid_len, char *password, int pass_len, rthw_security_t security_type); +int rthw_wifi_connect_bssid(char *bssid, char *ssid, int ssid_len, char *password, int pass_len, rthw_security_t security_type); +int rthw_wifi_ap_start(char *ssid, char *password, int channel); +int rthw_wifi_rssi_get(void); +void rthw_wifi_channel_set(int channel); +int rthw_wifi_channel_get(void); +int rthw_wifi_sta_disconnect(void); +int rthw_wifi_ap_disconnect(void); +int rthw_wifi_scan(scan_callback_fn fun, void *data); +void rthw_wifi_monitor_enable(int enable); +void rthw_wifi_monitor_callback_set(rthw_wlan_monitor_callback_t callback); +#endif diff --git a/bsp/amebaz/project.ewp b/bsp/amebaz/project.ewp deleted file mode 100644 index adb68dc096..0000000000 --- a/bsp/amebaz/project.ewp +++ /dev/null @@ -1,2466 +0,0 @@ - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 24 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - 0 - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - CSCRIPT "$PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\prebuild.vbs" "$PROJ_DIR$" "1" "0x08080000" - CSCRIPT "$PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\postbuild_img2.vbs" "$TARGET_DIR$" "$PROJ_DIR$" - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 24 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - 0 - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - Applications - - $PROJ_DIR$\applications\main.c - - - - Drivers - - $PROJ_DIR$\drivers\board.c - - - $PROJ_DIR$\drivers\drv_uart.c - - - $PROJ_DIR$\drivers\drv_wifi.c - - - - amebaz_wlan - - $PROJ_DIR$\drivers\wlan\amebaz_wlan.c - - - - rtt_patch - - $PROJ_DIR$\packages\realtek_ameba-latest\rtthread_patch\os\rtthread_service.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\rtthread_patch\realtek\8711b\rtl8710b_startup.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\rtthread_patch\realtek\8711b\app_start.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\rtthread_patch\realtek\common\wifi\wifi_conf.c - - - - ameba_wifi - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\wifi\wifi_ind.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\wifi\wifi_util.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\wifi\wifi_promisc.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\wifi\rtw_wpa_supplicant\wpa_supplicant\wifi_eap_config.c - - - - mbed - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\analogin_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\dma_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\efuse_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\flash_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\gpio_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\gpio_irq_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\i2c_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\i2s_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\nfc_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\pinmap.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\pinmap_common.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\port_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\pwmout_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\rtc_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\serial_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\sleep.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\spi_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\sys_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\timer_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\us_ticker.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\us_ticker_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\wait_api.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\wdt_api.c - - - - os_dep - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\os\os_dep\osdep_service.c - - - - soc_8711b - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\cmsis\device\system_8195a.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\fwlib\ram_lib\rtl8710b_pinmapcfg.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\fwlib\ram_lib\rtl8710b_intfcfg.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\app\monitor\ram\rtl_consol.c - - - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\app\monitor\ram\monitor.c - - - - Kernel - - $PROJ_DIR$\..\..\src\clock.c - - - $PROJ_DIR$\..\..\src\components.c - - - $PROJ_DIR$\..\..\src\device.c - - - $PROJ_DIR$\..\..\src\idle.c - - - $PROJ_DIR$\..\..\src\ipc.c - - - $PROJ_DIR$\..\..\src\irq.c - - - $PROJ_DIR$\..\..\src\kservice.c - - - $PROJ_DIR$\..\..\src\mem.c - - - $PROJ_DIR$\..\..\src\mempool.c - - - $PROJ_DIR$\..\..\src\object.c - - - $PROJ_DIR$\..\..\src\scheduler.c - - - $PROJ_DIR$\..\..\src\signal.c - - - $PROJ_DIR$\..\..\src\thread.c - - - $PROJ_DIR$\..\..\src\timer.c - - - - CORTEX-M4 - - $PROJ_DIR$\..\..\libcpu\arm\cortex-m4\cpuport.c - - - $PROJ_DIR$\..\..\libcpu\arm\cortex-m4\context_iar.S - - - $PROJ_DIR$\..\..\libcpu\arm\common\backtrace.c - - - $PROJ_DIR$\..\..\libcpu\arm\common\div0.c - - - $PROJ_DIR$\..\..\libcpu\arm\common\showmem.c - - - - DeviceDrivers - - $PROJ_DIR$\..\..\components\drivers\misc\pin.c - - - $PROJ_DIR$\..\..\components\drivers\serial\serial.c - - - $PROJ_DIR$\..\..\components\drivers\src\completion.c - - - $PROJ_DIR$\..\..\components\drivers\src\dataqueue.c - - - $PROJ_DIR$\..\..\components\drivers\src\pipe.c - - - $PROJ_DIR$\..\..\components\drivers\src\ringbuffer.c - - - $PROJ_DIR$\..\..\components\drivers\src\waitqueue.c - - - $PROJ_DIR$\..\..\components\drivers\src\workqueue.c - - - $PROJ_DIR$\..\..\components\drivers\wlan\wlan_cmd.c - - - $PROJ_DIR$\..\..\components\drivers\wlan\wlan_dev.c - - - $PROJ_DIR$\..\..\components\drivers\wlan\wlan_mgnt.c - - - - finsh - - $PROJ_DIR$\..\..\components\finsh\shell.c - - - $PROJ_DIR$\..\..\components\finsh\symbol.c - - - $PROJ_DIR$\..\..\components\finsh\cmd.c - - - $PROJ_DIR$\..\..\components\finsh\msh.c - - - $PROJ_DIR$\..\..\components\finsh\msh_cmd.c - - - $PROJ_DIR$\..\..\components\finsh\msh_file.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_compiler.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_error.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_heap.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_init.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_node.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_ops.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_parser.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_var.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_vm.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_token.c - - - - dlib - - $PROJ_DIR$\..\..\components\libc\compilers\dlib\environ.c - - - $PROJ_DIR$\..\..\components\libc\compilers\dlib\libc.c - - - $PROJ_DIR$\..\..\components\libc\compilers\dlib\rmtx.c - - - $PROJ_DIR$\..\..\components\libc\compilers\dlib\stdio.c - - - $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_close.c - - - $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_lseek.c - - - $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_mem.c - - - $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_open.c - - - $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_read.c - - - $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_remove.c - - - $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_write.c - - - $PROJ_DIR$\..\..\components\libc\compilers\dlib\time.c - - - - LwIP - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\api_lib.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\api_msg.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\err.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\netbuf.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\netdb.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\netifapi.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\sockets.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\tcpip.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\arch\sys_arch.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\def.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\dhcp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\dns.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\init.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\memp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\netif.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\pbuf.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\raw.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\stats.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\sys.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\tcp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\tcp_in.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\tcp_out.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\timers.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\udp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\autoip.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\icmp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\igmp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\inet.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\inet_chksum.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\ip.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\ip_addr.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\ip_frag.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\netif\etharp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\netif\ethernetif.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\netif\slipif.c - - - diff --git a/bsp/amebaz/project.ewt b/bsp/amebaz/project.ewt deleted file mode 100644 index b259f47f0f..0000000000 --- a/bsp/amebaz/project.ewt +++ /dev/null @@ -1,2504 +0,0 @@ - - - - 2 - - Debug - - ARM - - 1 - - C-STAT - 1 - - 1 - - 0 - - 600 - 0 - 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RuntimeChecking - 0 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - Release - - ARM - - 0 - - C-STAT - 1 - - 1 - - 0 - - 600 - 0 - 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RuntimeChecking - 0 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - ameba_drivers - - - ameba_wifi - - $PROJ_DIR$\packages\realtek_ameba\common\api\wifi\wifi_conf.c - - - $PROJ_DIR$\packages\realtek_ameba\common\api\wifi\rtw_wpa_supplicant\wpa_supplicant\wifi_eap_config.c - - - $PROJ_DIR$\packages\realtek_ameba\common\api\wifi\wifi_ind.c - - - $PROJ_DIR$\packages\realtek_ameba\common\api\wifi\wifi_promisc.c - - - $PROJ_DIR$\packages\realtek_ameba\common\api\wifi\wifi_util.c - - - - Applications - - $PROJ_DIR$\applications\application.c - - - $PROJ_DIR$\applications\startup.c - - - - CORTEX-M4 - - $PROJ_DIR$\..\..\libcpu\arm\common\backtrace.c - - - $PROJ_DIR$\..\..\libcpu\arm\cortex-m4\context_iar.S - - - $PROJ_DIR$\..\..\libcpu\arm\cortex-m4\cpuport.c - - - $PROJ_DIR$\..\..\libcpu\arm\common\div0.c - - - $PROJ_DIR$\..\..\libcpu\arm\common\showmem.c - - - - DeviceDrivers - - $PROJ_DIR$\..\..\components\drivers\src\completion.c - - - $PROJ_DIR$\..\..\components\drivers\src\dataqueue.c - - - $PROJ_DIR$\..\..\components\drivers\misc\pin.c - - - $PROJ_DIR$\..\..\components\drivers\src\pipe.c - - - $PROJ_DIR$\..\..\components\drivers\src\ringbuffer.c - - - $PROJ_DIR$\..\..\components\drivers\serial\serial.c - - - $PROJ_DIR$\..\..\components\drivers\src\waitqueue.c - - - $PROJ_DIR$\..\..\components\drivers\src\workqueue.c - - - - Drivers - - $PROJ_DIR$\drivers\board.c - - - $PROJ_DIR$\drivers\drv_uart.c - - - $PROJ_DIR$\drivers\drv_wifi.c - - - - finsh - - $PROJ_DIR$\..\..\components\finsh\cmd.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_compiler.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_error.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_heap.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_init.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_node.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_ops.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_parser.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_token.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_var.c - - - $PROJ_DIR$\..\..\components\finsh\finsh_vm.c - - - $PROJ_DIR$\..\..\components\finsh\msh.c - - - $PROJ_DIR$\..\..\components\finsh\msh_cmd.c - - - $PROJ_DIR$\..\..\components\finsh\msh_file.c - - - $PROJ_DIR$\..\..\components\finsh\shell.c - - - $PROJ_DIR$\..\..\components\finsh\symbol.c - - - - Kernel - - $PROJ_DIR$\..\..\src\clock.c - - - $PROJ_DIR$\..\..\src\components.c - - - $PROJ_DIR$\..\..\src\device.c - - - $PROJ_DIR$\..\..\src\idle.c - - - $PROJ_DIR$\..\..\src\ipc.c - - - $PROJ_DIR$\..\..\src\irq.c - - - $PROJ_DIR$\..\..\src\kservice.c - - - $PROJ_DIR$\..\..\src\mem.c - - - $PROJ_DIR$\..\..\src\mempool.c - - - $PROJ_DIR$\..\..\src\object.c - - - $PROJ_DIR$\..\..\src\scheduler.c - - - $PROJ_DIR$\..\..\src\signal.c - - - $PROJ_DIR$\..\..\src\thread.c - - - $PROJ_DIR$\..\..\src\timer.c - - - - LwIP - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\api_lib.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\api_msg.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\autoip.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\def.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\dhcp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\dns.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\err.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\netif\etharp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\netif\ethernetif.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\icmp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\igmp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\inet.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\inet_chksum.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\init.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\ip.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\ip_addr.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\ip_frag.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\memp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\netbuf.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\netdb.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\netif.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\netifapi.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\pbuf.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\raw.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\netif\slipif.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\sockets.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\stats.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\sys.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\arch\sys_arch.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\tcp.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\tcp_in.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\tcp_out.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\tcpip.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\timers.c - - - $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\udp.c - - - - mbed - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\analogin_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\dma_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\efuse_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\flash_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\gpio_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\gpio_irq_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\i2c_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\i2s_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\nfc_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\pinmap.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\pinmap_common.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\port_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\pwmout_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\rtc_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\serial_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\sleep.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\spi_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\sys_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\timer_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\us_ticker.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\us_ticker_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\wait_api.c - - - $PROJ_DIR$\packages\realtek_ameba\common\mbed\targets\hal\rtl8711b\wdt_api.c - - - - os_dep - - $PROJ_DIR$\packages\realtek_ameba\os\os_dep\osdep_service.c - - - $PROJ_DIR$\packages\realtek_ameba\os\rt-thread\rtthread_service.c - - - - polarssl - - $PROJ_DIR$\packages\realtek_ameba\common\network\ssl\ssl_ram_map\ssl_ram_map.c - - - - soc_8711b - - $PROJ_DIR$\packages\realtek_ameba\soc\realtek\8711b\cmsis\device\app_start.c - - - $PROJ_DIR$\packages\realtek_ameba\soc\realtek\8711b\app\monitor\ram\low_level_io.c - - - $PROJ_DIR$\packages\realtek_ameba\soc\realtek\8711b\app\monitor\ram\monitor.c - - - $PROJ_DIR$\packages\realtek_ameba\soc\realtek\8711b\fwlib\ram_lib\rt8710b_startup.c - - - $PROJ_DIR$\packages\realtek_ameba\soc\realtek\8711b\fwlib\ram_lib\rtl8710b_intfcfg.c - - - $PROJ_DIR$\packages\realtek_ameba\soc\realtek\8711b\fwlib\ram_lib\rtl8710b_pinmapcfg.c - - - $PROJ_DIR$\packages\realtek_ameba\soc\realtek\8711b\app\monitor\ram\rtl_consol.c - - - $PROJ_DIR$\packages\realtek_ameba\soc\realtek\8711b\cmsis\device\system_8195a.c - - - - - diff --git a/bsp/amebaz/project.eww b/bsp/amebaz/project.eww deleted file mode 100644 index faa93f37cd..0000000000 --- a/bsp/amebaz/project.eww +++ /dev/null @@ -1,10 +0,0 @@ - - - - - $WS_DIR$\project.ewp - - - - - diff --git a/bsp/amebaz/rtconfig.h b/bsp/amebaz/rtconfig.h index 2e6b043f5f..c2517b4185 100644 --- a/bsp/amebaz/rtconfig.h +++ b/bsp/amebaz/rtconfig.h @@ -11,15 +11,14 @@ #define RT_THREAD_PRIORITY_32 #define RT_THREAD_PRIORITY_MAX 32 #define RT_TICK_PER_SECOND 1000 -#define RT_DEBUG #define RT_USING_OVERFLOW_CHECK -#define RT_DEBUG_INIT 0 -#define RT_DEBUG_THREAD 0 #define RT_USING_HOOK +#define RT_IDEL_HOOK_LIST_SIZE 4 #define IDLE_THREAD_STACK_SIZE 256 #define RT_USING_TIMER_SOFT #define RT_TIMER_THREAD_PRIO 4 #define RT_TIMER_THREAD_STACK_SIZE 512 +#define RT_DEBUG /* Inter-Thread communication */ @@ -45,6 +44,9 @@ /* RT-Thread Components */ #define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 /* C++ features */ @@ -62,6 +64,7 @@ #define FINSH_CMD_SIZE 80 #define FINSH_USING_MSH #define FINSH_USING_MSH_DEFAULT +#define FINSH_USING_MSH_ONLY #define FINSH_ARG_MAX 10 /* Device virtual file system */ @@ -70,13 +73,27 @@ /* Device Drivers */ #define RT_USING_DEVICE_IPC +#define RT_PIPE_BUFSZ 512 #define RT_USING_SERIAL -#define RT_USING_PIN + +/* Using WiFi */ + #define RT_USING_WIFI -#define RT_USING_WLAN_STA -#define RT_USING_WLAN_AP -#define WIFI_DEVICE_STA_NAME "w0" -#define WIFI_DEVICE_AP_NAME "ap" +#define RT_WLAN_DEVICE_STA_NAME "wlan0" +#define RT_WLAN_DEVICE_AP_NAME "wlan1" +#define RT_WLAN_DEFAULT_PROT "lwip" +#define RT_WLAN_SCAN_WAIT_MS 10000 +#define RT_WLAN_CONNECT_WAIT_MS 10000 +#define RT_WLAN_SSID_MAX_LENGTH 32 +#define RT_WLAN_PASSWORD_MAX_LENGTH 32 +#define RT_WLAN_SCAN_SORT +#define RT_WLAN_CFG_INFO_MAX 3 +#define RT_WLAN_WORKQUEUE_THREAD_NAME "wlan_job" +#define RT_WLAN_WORKQUEUE_THREAD_SIZE 2048 +#define RT_WLAN_WORKQUEUE_THREAD_PRIO 22 +#define RT_WLAN_DEV_EVENT_NUM 2 +#define RT_WLAN_DEBUG +#define RT_WLAN_CMD_DEBUG /* Using USB */ @@ -85,12 +102,15 @@ #define RT_USING_LIBC -/* Network stack */ +/* Network */ + +/* Socket abstraction layer */ + /* light weight TCP/IP stack */ #define RT_USING_LWIP -#define RT_USING_LWIP141 +#define RT_USING_LWIP202 #define RT_LWIP_IGMP #define RT_LWIP_ICMP #define RT_LWIP_DNS @@ -129,6 +149,9 @@ /* Modbus master and slave stack */ +/* AT commands */ + + /* VBUS(Virtual Software BUS) */ @@ -148,6 +171,9 @@ /* Wiced WiFi */ +/* IoT Cloud */ + + /* security packages */ @@ -173,12 +199,23 @@ /* sample package */ +/* samples: kernel and components samples */ + /* example package: hello */ +/* Privated Packages of RealThread */ + + +/* Network Utilities */ + + +/* Test Packages of RealThread */ + + /* Env config */ -#define RT_USING_UART0 +#define BSP_USING_WIFI #endif diff --git a/bsp/amebaz/rtconfig.py b/bsp/amebaz/rtconfig.py index 97137df901..2711ffa04f 100644 --- a/bsp/amebaz/rtconfig.py +++ b/bsp/amebaz/rtconfig.py @@ -9,12 +9,17 @@ if os.getenv('RTT_CC'): CROSS_TOOL = os.getenv('RTT_CC') if os.getenv('RTT_ROOT'): RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = os.path.join(os.path.normpath(os.getcwd()), 'rt-thread') # cross_tool provides the cross compiler # EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR if CROSS_TOOL == 'gcc': PLATFORM = 'gcc' - EXEC_PATH = r'/opt/gcc-arm-none-eabi-5_4-2016q3/bin' + EXEC_PATH = 'C:/work/env/tools/gnu_gcc/arm_gcc/mingw/bin' +elif CROSS_TOOL == 'iar': + PLATFORM = 'iar' + EXEC_PATH = 'C:/Program Files (x86)/IAR Systems/Embedded Workbench 7.0' else: print 'Please make sure your toolchains is GNU GCC!' exit(0) @@ -39,7 +44,7 @@ if PLATFORM == 'gcc': NM = PREFIX + 'nm' DEVICE = ' -DM3 -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections' - CFLAGS = DEVICE + ' -g2 -w -O2 -Wno-pointer-sign -fno-common -fmessage-length=0 -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-short-enums -DF_CPU=166000000L -std=gnu99 -fsigned-char' + CFLAGS = DEVICE + ' -g2 -Wall -Wno-pointer-sign -fno-common -fmessage-length=0 -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-short-enums -DF_CPU=166000000L -std=gnu99 -fsigned-char' AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' LFLAGS = DEVICE + ' -lm -lgcc -lc' + ' -g --specs=nano.specs -nostartfiles -Wl,-Map=rtthread.map -Os -Wl,--gc-sections -Wl,--cref -Wl,--entry=Reset_Handler -Wl,--no-enum-size-warning -Wl,--no-wchar-size-warning -T./rlx8711B-symbol-v02-img2_xip1.ld' LFLAGS += ' -Wl,-wrap,rtl_printf' @@ -48,7 +53,7 @@ if PLATFORM == 'gcc': LPATH = '' if BUILD == 'debug': - CFLAGS += ' -O0 -gdwarf-2' + CFLAGS += ' -Os -gdwarf-2' AFLAGS += ' -gdwarf-2' else: CFLAGS += ' -O2' diff --git a/bsp/amebaz/template.ewd b/bsp/amebaz/template.ewd deleted file mode 100644 index 5bb47654f2..0000000000 --- a/bsp/amebaz/template.ewd +++ /dev/null @@ -1,2977 +0,0 @@ - - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 6 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 4 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 6 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 4 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - - diff --git a/bsp/amebaz/template.ewp b/bsp/amebaz/template.ewp deleted file mode 100644 index fb40c2e386..0000000000 --- a/bsp/amebaz/template.ewp +++ /dev/null @@ -1,1917 +0,0 @@ - - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 24 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - 0 - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - CSCRIPT "$PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\prebuild.vbs" "$PROJ_DIR$" "1" "0x08080000" - CSCRIPT "$PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\postbuild_img2.vbs" "$TARGET_DIR$" "$PROJ_DIR$" - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 24 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - 0 - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - diff --git a/bsp/amebaz/template.ewt b/bsp/amebaz/template.ewt deleted file mode 100644 index 9296247326..0000000000 --- a/bsp/amebaz/template.ewt +++ /dev/null @@ -1,2099 +0,0 @@ - - - - 2 - - Debug - - ARM - - 1 - - C-STAT - 1 - - 1 - - 0 - - 600 - 0 - 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RuntimeChecking - 0 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - Release - - ARM - - 0 - - C-STAT - 1 - - 1 - - 0 - - 600 - 0 - 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RuntimeChecking - 0 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bsp/amebaz/tmp.board b/bsp/amebaz/tmp.board deleted file mode 100644 index f88776bc84..0000000000 --- a/bsp/amebaz/tmp.board +++ /dev/null @@ -1,21 +0,0 @@ - - - - - CODE 0x8000000 0x8004fff - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash - 0x00000000 - - - CODE 0x800b020 0x807ffff - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash - 0xb020 - - - CODE 0x10005000 0x10005A6B - $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash - 0xb000 - --concat - - CODE 0x10005a6c 0x1003dfff - From a454393994e0861de456207d2f3123801624ff9a Mon Sep 17 00:00:00 2001 From: misonyo Date: Mon, 22 Oct 2018 11:02:14 +0800 Subject: [PATCH 28/31] [BSP][all NXP]change license to Apache-2.0 --- bsp/frdm-k64f/applications/application.c | 8 ++---- bsp/frdm-k64f/applications/startup.c | 8 ++---- bsp/frdm-k64f/board/board.c | 8 ++---- bsp/frdm-k64f/board/board.h | 8 ++---- bsp/frdm-k64f/board/drv_emac.c | 7 +++-- bsp/frdm-k64f/board/drv_emac.h | 7 +++-- bsp/frdm-k64f/board/drv_uart.c | 8 ++---- bsp/frdm-k64f/board/drv_uart.h | 8 ++---- bsp/frdm-k64f/board/led.c | 8 ++---- bsp/frdm-k64f/board/led.h | 8 ++---- bsp/imx6sx/cortex-a9/applications/main.c | 8 ++++++ bsp/imx6sx/cortex-a9/cpu/context_gcc.S | 18 ++----------- bsp/imx6sx/cortex-a9/cpu/cp15_gcc.S | 19 ++------------ bsp/imx6sx/cortex-a9/cpu/cpu.c | 8 ++---- bsp/imx6sx/cortex-a9/cpu/interrupt.c | 8 ++---- bsp/imx6sx/cortex-a9/cpu/mmu.c | 8 ++---- bsp/imx6sx/cortex-a9/cpu/pmu.c | 8 ++++++ bsp/imx6sx/cortex-a9/cpu/stack.c | 8 ++---- bsp/imx6sx/cortex-a9/cpu/start_gcc.S | 18 ++----------- bsp/imx6sx/cortex-a9/cpu/trap.c | 8 ++---- bsp/imx6sx/cortex-a9/cpu/vector_gcc.S | 18 ++----------- bsp/imx6sx/cortex-a9/drivers/board.c | 8 ++---- bsp/imx6sx/cortex-a9/drivers/board.h | 8 ++---- bsp/imx6sx/cortex-a9/drivers/emac_drv.c | 7 +++-- bsp/imx6sx/cortex-a9/drivers/emac_drv.h | 7 +++-- bsp/imx6sx/cortex-a9/drivers/serial.c | 26 +++---------------- bsp/imx6sx/cortex-a9/drivers/serial.h | 26 +++---------------- bsp/imx6ul/applications/application.c | 8 ++---- bsp/imx6ul/applications/startup.c | 8 ++---- bsp/imx6ul/drivers/board.c | 8 ++---- bsp/imx6ul/drivers/board.h | 8 ++---- bsp/imx6ul/drivers/serial.c | 26 +++---------------- bsp/imx6ul/drivers/serial.h | 26 +++---------------- .../imxrt1050-ArchMix/applications/lcd_init.c | 18 ++----------- .../imxrt1050-ArchMix/applications/main.c | 18 ++----------- bsp/imxrt/imxrt1050-ArchMix/drivers/board.c | 8 ++---- bsp/imxrt/imxrt1050-ArchMix/drivers/board.h | 8 ++---- .../imxrt1050-evk/applications/lcd_init.c | 18 ++----------- bsp/imxrt/imxrt1050-evk/applications/main.c | 18 ++----------- bsp/imxrt/imxrt1050-evk/drivers/board.c | 8 ++---- bsp/imxrt/imxrt1050-evk/drivers/board.h | 8 ++---- bsp/lpc176x/applications/application.c | 8 ++---- bsp/lpc176x/applications/platform.c | 8 ++---- bsp/lpc176x/applications/platform.h | 8 ++---- bsp/lpc176x/applications/startup.c | 8 ++---- bsp/lpc176x/drivers/board.c | 8 ++---- bsp/lpc176x/drivers/board.h | 8 ++---- bsp/lpc176x/drivers/emac.c | 8 ++++++ bsp/lpc176x/drivers/led.h | 8 ++++++ bsp/lpc176x/drivers/sd.c | 8 ++++++ bsp/lpc176x/drivers/uart.c | 8 ++---- bsp/lpc178x/applications/application.c | 8 ++---- bsp/lpc178x/applications/startup.c | 8 ++---- bsp/lpc178x/drivers/board.c | 8 ++---- bsp/lpc178x/drivers/board.h | 8 ++---- bsp/lpc178x/drivers/emac.c | 8 ++++++ bsp/lpc178x/drivers/lpc17xx_lcd.c | 8 ++++++ bsp/lpc178x/drivers/sdram.c | 8 ++++++ bsp/lpc178x/drivers/uart.c | 8 ++---- bsp/lpc2148/applications/application.c | 8 ++---- bsp/lpc2148/applications/startup.c | 8 ++---- bsp/lpc2148/drivers/board.c | 8 ++---- bsp/lpc2148/drivers/board.h | 8 ++---- bsp/lpc2148/drivers/dm9000.c | 8 ++++++ bsp/lpc2148/drivers/sd.c | 8 ++++++ bsp/lpc2148/drivers/serial.c | 8 ++---- bsp/lpc2478/applications/application.c | 8 ++---- bsp/lpc2478/applications/startup.c | 8 ++---- bsp/lpc2478/drivers/board.c | 8 ++---- bsp/lpc2478/drivers/board.h | 8 ++---- bsp/lpc2478/drivers/serial.c | 8 ++---- bsp/lpc408x/applications/application.c | 8 ++---- bsp/lpc408x/applications/board.c | 8 ++---- bsp/lpc408x/applications/board.h | 8 ++---- bsp/lpc408x/applications/canapp.c | 8 ++---- bsp/lpc408x/applications/sram.c | 12 +++------ bsp/lpc408x/applications/sram.h | 8 ++---- bsp/lpc408x/applications/startup.c | 8 ++---- bsp/lpc408x/drivers/drv_emac.c | 8 ++---- bsp/lpc408x/drivers/drv_emac.h | 8 ++---- bsp/lpc408x/drivers/drv_hwtimer.c | 8 ++---- bsp/lpc408x/drivers/drv_led.c | 8 ++++++ bsp/lpc408x/drivers/drv_lpccan.c | 8 ++---- bsp/lpc408x/drivers/drv_lpccan.h | 8 ++---- bsp/lpc408x/drivers/drv_sdram.c | 8 ++---- bsp/lpc408x/drivers/drv_sdram.h | 8 ++---- bsp/lpc408x/drivers/drv_uart.c | 8 ++---- bsp/lpc408x/drivers/drv_uart.h | 8 ++---- bsp/lpc43xx/M0/applications/application.c | 8 ++---- bsp/lpc43xx/M0/applications/board.c | 8 ++---- bsp/lpc43xx/M0/applications/board.h | 8 ++---- bsp/lpc43xx/M0/applications/startup.c | 8 ++---- bsp/lpc43xx/M0/applications/vbus_drv.c | 26 +++---------------- bsp/lpc43xx/M0/applications/vbus_hw.h | 25 +++--------------- bsp/lpc43xx/M4/applications/application.c | 8 ++---- bsp/lpc43xx/M4/applications/board.c | 8 ++---- bsp/lpc43xx/M4/applications/board.h | 8 ++---- bsp/lpc43xx/M4/applications/startup.c | 8 ++---- bsp/lpc43xx/M4/applications/vbus_drv.c | 26 +++---------------- bsp/lpc43xx/M4/applications/vbus_hw.h | 25 +++--------------- bsp/lpc43xx/drivers/drv_emac.c | 8 ++---- bsp/lpc43xx/drivers/drv_emac.h | 8 ++---- bsp/lpc43xx/drivers/drv_led.c | 8 ++++++ bsp/lpc43xx/drivers/drv_uart.c | 8 ++---- bsp/lpc5410x/applications/application.c | 8 ++---- bsp/lpc5410x/applications/board.c | 8 ++---- bsp/lpc5410x/applications/board.h | 8 ++---- bsp/lpc5410x/applications/demo_thread.c | 8 ++++++ bsp/lpc5410x/applications/startup.c | 8 ++---- bsp/lpc5410x/drivers/drv_led.c | 8 ++++++ bsp/lpc5410x/drivers/drv_uart.c | 8 ++---- .../applications/application.c | 17 ++---------- bsp/lpc54608-LPCXpresso/applications/mnt.c | 17 ++---------- .../applications/startup.c | 17 ++---------- bsp/lpc54608-LPCXpresso/drivers/board.c | 8 ++---- bsp/lpc54608-LPCXpresso/drivers/board.h | 8 ++---- bsp/lpc54608-LPCXpresso/drivers/drt_mpu.c | 17 ++---------- bsp/lpc54608-LPCXpresso/drivers/drt_mpu.h | 17 ++---------- bsp/lpc54608-LPCXpresso/drivers/drv_emac.c | 17 ++---------- bsp/lpc54608-LPCXpresso/drivers/drv_emac.h | 8 ++---- bsp/lpc54608-LPCXpresso/drivers/drv_ft5406.c | 18 ++----------- bsp/lpc54608-LPCXpresso/drivers/drv_i2c.c | 17 ++---------- bsp/lpc54608-LPCXpresso/drivers/drv_lcd.c | 17 ++---------- bsp/lpc54608-LPCXpresso/drivers/drv_sd.c | 17 ++---------- bsp/lpc54608-LPCXpresso/drivers/drv_sd.h | 9 ++----- bsp/lpc54608-LPCXpresso/drivers/drv_sdram.c | 17 ++---------- bsp/lpc54608-LPCXpresso/drivers/drv_sdram.h | 8 ++---- bsp/lpc54608-LPCXpresso/drivers/drv_sram.c | 12 +++------ bsp/lpc54608-LPCXpresso/drivers/drv_sram.h | 8 ++---- bsp/lpc54608-LPCXpresso/drivers/drv_uart.c | 8 ++---- bsp/lpc824/applications/application.c | 8 ++---- bsp/lpc824/applications/startup.c | 8 ++---- bsp/lpc824/drivers/board.c | 8 ++---- bsp/lpc824/drivers/board.h | 8 ++---- bsp/lpc824/drivers/usart.c | 8 ++---- bsp/lpc824/drivers/usart.h | 8 ++---- 136 files changed, 372 insertions(+), 1044 deletions(-) diff --git a/bsp/frdm-k64f/applications/application.c b/bsp/frdm-k64f/applications/application.c index 0b2f9cda6e..3d4448e2a5 100644 --- a/bsp/frdm-k64f/applications/application.c +++ b/bsp/frdm-k64f/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/frdm-k64f/applications/startup.c b/bsp/frdm-k64f/applications/startup.c index 430cf0f0bc..3627cb993b 100644 --- a/bsp/frdm-k64f/applications/startup.c +++ b/bsp/frdm-k64f/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/frdm-k64f/board/board.c b/bsp/frdm-k64f/board/board.c index a386d18520..334f571d69 100644 --- a/bsp/frdm-k64f/board/board.c +++ b/bsp/frdm-k64f/board/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/frdm-k64f/board/board.h b/bsp/frdm-k64f/board/board.h index fca6fd0ce2..7610ade1fe 100644 --- a/bsp/frdm-k64f/board/board.h +++ b/bsp/frdm-k64f/board/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/frdm-k64f/board/drv_emac.c b/bsp/frdm-k64f/board/drv_emac.c index b70fb1c310..606c141545 100644 --- a/bsp/frdm-k64f/board/drv_emac.c +++ b/bsp/frdm-k64f/board/drv_emac.c @@ -1,8 +1,7 @@ /* - * File : emac_drv.c - * i.MX6 EMAC Ethernet driver - * COPYRIGHT (C) 2015, Shanghai Real-Thread Electronic Technology Co.,Ltd - * + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * Change Logs: * Date Author Notes * 2015-07-15 Bernard The first version diff --git a/bsp/frdm-k64f/board/drv_emac.h b/bsp/frdm-k64f/board/drv_emac.h index c53b367647..e2d0ec8c8c 100644 --- a/bsp/frdm-k64f/board/drv_emac.h +++ b/bsp/frdm-k64f/board/drv_emac.h @@ -1,8 +1,7 @@ /* - * File : drv_emac.h - * i.MX6 EMAC Ethernet driver - * COPYRIGHT (C) 2015, Shanghai Real-Thread Electronic Technology Co.,Ltd - * + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * Change Logs: * Date Author Notes * 2015-07-15 Bernard The first version diff --git a/bsp/frdm-k64f/board/drv_uart.c b/bsp/frdm-k64f/board/drv_uart.c index 6481746fe0..c4a1da1013 100644 --- a/bsp/frdm-k64f/board/drv_uart.c +++ b/bsp/frdm-k64f/board/drv_uart.c @@ -1,11 +1,7 @@ /* - * File : drv_uart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/frdm-k64f/board/drv_uart.h b/bsp/frdm-k64f/board/drv_uart.h index 83580972d1..7fd78c9a4e 100644 --- a/bsp/frdm-k64f/board/drv_uart.h +++ b/bsp/frdm-k64f/board/drv_uart.h @@ -1,11 +1,7 @@ /* - * File : drv_uart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/frdm-k64f/board/led.c b/bsp/frdm-k64f/board/led.c index 3a13fef29b..aebea8bdce 100644 --- a/bsp/frdm-k64f/board/led.c +++ b/bsp/frdm-k64f/board/led.c @@ -1,11 +1,7 @@ /* - * File : led.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/frdm-k64f/board/led.h b/bsp/frdm-k64f/board/led.h index ca08d3f266..f1c62666d6 100644 --- a/bsp/frdm-k64f/board/led.h +++ b/bsp/frdm-k64f/board/led.h @@ -1,11 +1,7 @@ /* - * File : led.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6sx/cortex-a9/applications/main.c b/bsp/imx6sx/cortex-a9/applications/main.c index c9a2b6ca05..9b0847fc8f 100644 --- a/bsp/imx6sx/cortex-a9/applications/main.c +++ b/bsp/imx6sx/cortex-a9/applications/main.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include #include diff --git a/bsp/imx6sx/cortex-a9/cpu/context_gcc.S b/bsp/imx6sx/cortex-a9/cpu/context_gcc.S index 01593a7c0a..97b3dbc447 100644 --- a/bsp/imx6sx/cortex-a9/cpu/context_gcc.S +++ b/bsp/imx6sx/cortex-a9/cpu/context_gcc.S @@ -1,21 +1,7 @@ /* - * File : context.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6sx/cortex-a9/cpu/cp15_gcc.S b/bsp/imx6sx/cortex-a9/cpu/cp15_gcc.S index f1ed6492aa..0e3e60655c 100644 --- a/bsp/imx6sx/cortex-a9/cpu/cp15_gcc.S +++ b/bsp/imx6sx/cortex-a9/cpu/cp15_gcc.S @@ -1,22 +1,7 @@ /* - * File : cp15_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team - * http://www.rt-thread.org + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6sx/cortex-a9/cpu/cpu.c b/bsp/imx6sx/cortex-a9/cpu/cpu.c index 7dd426e4dd..2d78715011 100644 --- a/bsp/imx6sx/cortex-a9/cpu/cpu.c +++ b/bsp/imx6sx/cortex-a9/cpu/cpu.c @@ -1,11 +1,7 @@ /* - * File : cpu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6sx/cortex-a9/cpu/interrupt.c b/bsp/imx6sx/cortex-a9/cpu/interrupt.c index 942c074721..3934c84aaf 100644 --- a/bsp/imx6sx/cortex-a9/cpu/interrupt.c +++ b/bsp/imx6sx/cortex-a9/cpu/interrupt.c @@ -1,11 +1,7 @@ /* - * File : interrupt.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013-2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6sx/cortex-a9/cpu/mmu.c b/bsp/imx6sx/cortex-a9/cpu/mmu.c index b2503e4260..58acdd8145 100644 --- a/bsp/imx6sx/cortex-a9/cpu/mmu.c +++ b/bsp/imx6sx/cortex-a9/cpu/mmu.c @@ -1,11 +1,7 @@ /* - * File : mmu.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6sx/cortex-a9/cpu/pmu.c b/bsp/imx6sx/cortex-a9/cpu/pmu.c index 07911a2db7..8ffc1dede6 100644 --- a/bsp/imx6sx/cortex-a9/cpu/pmu.c +++ b/bsp/imx6sx/cortex-a9/cpu/pmu.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include "pmu.h" diff --git a/bsp/imx6sx/cortex-a9/cpu/stack.c b/bsp/imx6sx/cortex-a9/cpu/stack.c index e653c5d111..2bd3c36915 100644 --- a/bsp/imx6sx/cortex-a9/cpu/stack.c +++ b/bsp/imx6sx/cortex-a9/cpu/stack.c @@ -1,11 +1,7 @@ /* - * File : stack.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2011, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6sx/cortex-a9/cpu/start_gcc.S b/bsp/imx6sx/cortex-a9/cpu/start_gcc.S index ca8c1f930f..2f16d16807 100644 --- a/bsp/imx6sx/cortex-a9/cpu/start_gcc.S +++ b/bsp/imx6sx/cortex-a9/cpu/start_gcc.S @@ -1,21 +1,7 @@ /* - * File : start_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013-2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6sx/cortex-a9/cpu/trap.c b/bsp/imx6sx/cortex-a9/cpu/trap.c index 515f7cb544..f3b2c26e6d 100644 --- a/bsp/imx6sx/cortex-a9/cpu/trap.c +++ b/bsp/imx6sx/cortex-a9/cpu/trap.c @@ -1,11 +1,7 @@ /* - * File : trap.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6sx/cortex-a9/cpu/vector_gcc.S b/bsp/imx6sx/cortex-a9/cpu/vector_gcc.S index 4a44a7395c..60d3c6cf1d 100644 --- a/bsp/imx6sx/cortex-a9/cpu/vector_gcc.S +++ b/bsp/imx6sx/cortex-a9/cpu/vector_gcc.S @@ -1,21 +1,7 @@ /* - * File : vector_gcc.S - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6sx/cortex-a9/drivers/board.c b/bsp/imx6sx/cortex-a9/drivers/board.c index 1ac040d7e4..7ff9d47a89 100644 --- a/bsp/imx6sx/cortex-a9/drivers/board.c +++ b/bsp/imx6sx/cortex-a9/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6sx/cortex-a9/drivers/board.h b/bsp/imx6sx/cortex-a9/drivers/board.h index f3fe347584..9ae9ae60c7 100644 --- a/bsp/imx6sx/cortex-a9/drivers/board.h +++ b/bsp/imx6sx/cortex-a9/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6sx/cortex-a9/drivers/emac_drv.c b/bsp/imx6sx/cortex-a9/drivers/emac_drv.c index ae61d2601c..af5ca009cf 100644 --- a/bsp/imx6sx/cortex-a9/drivers/emac_drv.c +++ b/bsp/imx6sx/cortex-a9/drivers/emac_drv.c @@ -1,8 +1,7 @@ /* - * File : emac_drv.c - * i.MX6 EMAC Ethernet driver - * COPYRIGHT (C) 2015, Shanghai Real-Thread Electronic Technology Co.,Ltd - * + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * Change Logs: * Date Author Notes * 2015-07-15 Bernard The first version diff --git a/bsp/imx6sx/cortex-a9/drivers/emac_drv.h b/bsp/imx6sx/cortex-a9/drivers/emac_drv.h index 4400219d8e..face875283 100644 --- a/bsp/imx6sx/cortex-a9/drivers/emac_drv.h +++ b/bsp/imx6sx/cortex-a9/drivers/emac_drv.h @@ -1,8 +1,7 @@ /* - * File : drv_emac.h - * i.MX6 EMAC Ethernet driver - * COPYRIGHT (C) 2015, Shanghai Real-Thread Electronic Technology Co.,Ltd - * + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * Change Logs: * Date Author Notes * 2015-07-15 Bernard The first version diff --git a/bsp/imx6sx/cortex-a9/drivers/serial.c b/bsp/imx6sx/cortex-a9/drivers/serial.c index ff6b1ac32e..a2d4e2338a 100644 --- a/bsp/imx6sx/cortex-a9/drivers/serial.c +++ b/bsp/imx6sx/cortex-a9/drivers/serial.c @@ -1,27 +1,7 @@ /* - * serial.c UART driver - * - * COPYRIGHT (C) 2013, Shanghai Real-Thread Technology Co., Ltd - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * Change Logs: * Date Author Notes * 2013-03-30 Bernard the first verion diff --git a/bsp/imx6sx/cortex-a9/drivers/serial.h b/bsp/imx6sx/cortex-a9/drivers/serial.h index 52e6f07ea3..00d464bde0 100644 --- a/bsp/imx6sx/cortex-a9/drivers/serial.h +++ b/bsp/imx6sx/cortex-a9/drivers/serial.h @@ -1,27 +1,7 @@ /* - * UART driver - * - * COPYRIGHT (C) 2013, Shanghai Real-Thread Technology Co., Ltd - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * Change Logs: * Date Author Notes * 2013-03-30 Bernard the first verion diff --git a/bsp/imx6ul/applications/application.c b/bsp/imx6ul/applications/application.c index d9580cda23..98fcbfc883 100644 --- a/bsp/imx6ul/applications/application.c +++ b/bsp/imx6ul/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6ul/applications/startup.c b/bsp/imx6ul/applications/startup.c index be041e0c0f..4c1f83619e 100644 --- a/bsp/imx6ul/applications/startup.c +++ b/bsp/imx6ul/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6ul/drivers/board.c b/bsp/imx6ul/drivers/board.c index 75df035630..e53e2405b6 100644 --- a/bsp/imx6ul/drivers/board.c +++ b/bsp/imx6ul/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2016, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6ul/drivers/board.h b/bsp/imx6ul/drivers/board.h index b063e49879..3e98e302c2 100644 --- a/bsp/imx6ul/drivers/board.h +++ b/bsp/imx6ul/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imx6ul/drivers/serial.c b/bsp/imx6ul/drivers/serial.c index dcb4e16e12..0f6943cfbd 100644 --- a/bsp/imx6ul/drivers/serial.c +++ b/bsp/imx6ul/drivers/serial.c @@ -1,27 +1,7 @@ /* - * serial.c UART driver - * - * COPYRIGHT (C) 2013, Shanghai Real-Thread Technology Co., Ltd - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * Change Logs: * Date Author Notes * 2013-03-30 Bernard the first verion diff --git a/bsp/imx6ul/drivers/serial.h b/bsp/imx6ul/drivers/serial.h index 52e6f07ea3..00d464bde0 100644 --- a/bsp/imx6ul/drivers/serial.h +++ b/bsp/imx6ul/drivers/serial.h @@ -1,27 +1,7 @@ /* - * UART driver - * - * COPYRIGHT (C) 2013, Shanghai Real-Thread Technology Co., Ltd - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * Maintainer: bernard.xiong - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * Change Logs: * Date Author Notes * 2013-03-30 Bernard the first verion diff --git a/bsp/imxrt/imxrt1050-ArchMix/applications/lcd_init.c b/bsp/imxrt/imxrt1050-ArchMix/applications/lcd_init.c index be209338b3..1fdebfd260 100644 --- a/bsp/imxrt/imxrt1050-ArchMix/applications/lcd_init.c +++ b/bsp/imxrt/imxrt1050-ArchMix/applications/lcd_init.c @@ -1,21 +1,7 @@ /* - * File : lcd_init.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/imxrt1050-ArchMix/applications/main.c b/bsp/imxrt/imxrt1050-ArchMix/applications/main.c index 9f6060487a..559c07bd09 100644 --- a/bsp/imxrt/imxrt1050-ArchMix/applications/main.c +++ b/bsp/imxrt/imxrt1050-ArchMix/applications/main.c @@ -1,21 +1,7 @@ /* - * File : clock.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/imxrt1050-ArchMix/drivers/board.c b/bsp/imxrt/imxrt1050-ArchMix/drivers/board.c index a604df6d4c..68b20e2546 100644 --- a/bsp/imxrt/imxrt1050-ArchMix/drivers/board.c +++ b/bsp/imxrt/imxrt1050-ArchMix/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/imxrt1050-ArchMix/drivers/board.h b/bsp/imxrt/imxrt1050-ArchMix/drivers/board.h index 80a61f1a3a..c02e150258 100644 --- a/bsp/imxrt/imxrt1050-ArchMix/drivers/board.h +++ b/bsp/imxrt/imxrt1050-ArchMix/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/imxrt1050-evk/applications/lcd_init.c b/bsp/imxrt/imxrt1050-evk/applications/lcd_init.c index be209338b3..1fdebfd260 100644 --- a/bsp/imxrt/imxrt1050-evk/applications/lcd_init.c +++ b/bsp/imxrt/imxrt1050-evk/applications/lcd_init.c @@ -1,21 +1,7 @@ /* - * File : lcd_init.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/imxrt1050-evk/applications/main.c b/bsp/imxrt/imxrt1050-evk/applications/main.c index 9f6060487a..559c07bd09 100644 --- a/bsp/imxrt/imxrt1050-evk/applications/main.c +++ b/bsp/imxrt/imxrt1050-evk/applications/main.c @@ -1,21 +1,7 @@ /* - * File : clock.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/imxrt1050-evk/drivers/board.c b/bsp/imxrt/imxrt1050-evk/drivers/board.c index a604df6d4c..68b20e2546 100644 --- a/bsp/imxrt/imxrt1050-evk/drivers/board.c +++ b/bsp/imxrt/imxrt1050-evk/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/imxrt/imxrt1050-evk/drivers/board.h b/bsp/imxrt/imxrt1050-evk/drivers/board.h index 80a61f1a3a..c02e150258 100644 --- a/bsp/imxrt/imxrt1050-evk/drivers/board.h +++ b/bsp/imxrt/imxrt1050-evk/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc176x/applications/application.c b/bsp/lpc176x/applications/application.c index acc6b300ea..9facb30aa8 100644 --- a/bsp/lpc176x/applications/application.c +++ b/bsp/lpc176x/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc176x/applications/platform.c b/bsp/lpc176x/applications/platform.c index 05e3b0d5e0..4bab858aa4 100644 --- a/bsp/lpc176x/applications/platform.c +++ b/bsp/lpc176x/applications/platform.c @@ -1,11 +1,7 @@ /* - * File : platform.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc176x/applications/platform.h b/bsp/lpc176x/applications/platform.h index 6b5ebf3f88..e52e4066c2 100644 --- a/bsp/lpc176x/applications/platform.h +++ b/bsp/lpc176x/applications/platform.h @@ -1,11 +1,7 @@ /* - * File : platform.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc176x/applications/startup.c b/bsp/lpc176x/applications/startup.c index abc08f1852..63d5b0f9a5 100644 --- a/bsp/lpc176x/applications/startup.c +++ b/bsp/lpc176x/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc176x/drivers/board.c b/bsp/lpc176x/drivers/board.c index a66194b64c..c636462a2e 100644 --- a/bsp/lpc176x/drivers/board.c +++ b/bsp/lpc176x/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc176x/drivers/board.h b/bsp/lpc176x/drivers/board.h index 389e36e6c3..951a2c4cda 100644 --- a/bsp/lpc176x/drivers/board.h +++ b/bsp/lpc176x/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc176x/drivers/emac.c b/bsp/lpc176x/drivers/emac.c index fd2df23ec0..27fc55397a 100644 --- a/bsp/lpc176x/drivers/emac.c +++ b/bsp/lpc176x/drivers/emac.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include "emac.h" #include "lwipopts.h" diff --git a/bsp/lpc176x/drivers/led.h b/bsp/lpc176x/drivers/led.h index 928c91e6e8..658ed16d1c 100644 --- a/bsp/lpc176x/drivers/led.h +++ b/bsp/lpc176x/drivers/led.h @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #ifndef __LED_H__ #define __LED_H__ diff --git a/bsp/lpc176x/drivers/sd.c b/bsp/lpc176x/drivers/sd.c index 6c6c4ef4b6..27f3707da9 100644 --- a/bsp/lpc176x/drivers/sd.c +++ b/bsp/lpc176x/drivers/sd.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include diff --git a/bsp/lpc176x/drivers/uart.c b/bsp/lpc176x/drivers/uart.c index 29f11ebecd..231eccb10a 100644 --- a/bsp/lpc176x/drivers/uart.c +++ b/bsp/lpc176x/drivers/uart.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc178x/applications/application.c b/bsp/lpc178x/applications/application.c index 29352f857b..9780d42154 100644 --- a/bsp/lpc178x/applications/application.c +++ b/bsp/lpc178x/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc178x/applications/startup.c b/bsp/lpc178x/applications/startup.c index 4da4991523..07698574b5 100644 --- a/bsp/lpc178x/applications/startup.c +++ b/bsp/lpc178x/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc178x/drivers/board.c b/bsp/lpc178x/drivers/board.c index 42cc85912a..df06d7f2f8 100644 --- a/bsp/lpc178x/drivers/board.c +++ b/bsp/lpc178x/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc178x/drivers/board.h b/bsp/lpc178x/drivers/board.h index 1cd02ccfb0..1a6d82e4b7 100644 --- a/bsp/lpc178x/drivers/board.h +++ b/bsp/lpc178x/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc178x/drivers/emac.c b/bsp/lpc178x/drivers/emac.c index 283b00243c..a16dc49770 100644 --- a/bsp/lpc178x/drivers/emac.c +++ b/bsp/lpc178x/drivers/emac.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include "LPC177x_8x.h" #include "lpc177x_8x_pinsel.h" #include "emac.h" diff --git a/bsp/lpc178x/drivers/lpc17xx_lcd.c b/bsp/lpc178x/drivers/lpc17xx_lcd.c index 09208e893e..cc488dfebb 100644 --- a/bsp/lpc178x/drivers/lpc17xx_lcd.c +++ b/bsp/lpc178x/drivers/lpc17xx_lcd.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include "LPC177x_8x.h" diff --git a/bsp/lpc178x/drivers/sdram.c b/bsp/lpc178x/drivers/sdram.c index 59a04e53df..c2fcbcc9ab 100644 --- a/bsp/lpc178x/drivers/sdram.c +++ b/bsp/lpc178x/drivers/sdram.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include diff --git a/bsp/lpc178x/drivers/uart.c b/bsp/lpc178x/drivers/uart.c index cfc97f4430..0d92eb1fca 100644 --- a/bsp/lpc178x/drivers/uart.c +++ b/bsp/lpc178x/drivers/uart.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc2148/applications/application.c b/bsp/lpc2148/applications/application.c index 5ceb371837..fd07f22f05 100644 --- a/bsp/lpc2148/applications/application.c +++ b/bsp/lpc2148/applications/application.c @@ -1,11 +1,7 @@ /* - * File : app.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc2148/applications/startup.c b/bsp/lpc2148/applications/startup.c index 4a2db19c95..5b699a8613 100644 --- a/bsp/lpc2148/applications/startup.c +++ b/bsp/lpc2148/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc2148/drivers/board.c b/bsp/lpc2148/drivers/board.c index 10f25e079a..96a4aa62f4 100644 --- a/bsp/lpc2148/drivers/board.c +++ b/bsp/lpc2148/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc2148/drivers/board.h b/bsp/lpc2148/drivers/board.h index 7c2dcee6da..346f10182f 100644 --- a/bsp/lpc2148/drivers/board.h +++ b/bsp/lpc2148/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc2148/drivers/dm9000.c b/bsp/lpc2148/drivers/dm9000.c index 478de46df3..169be59f12 100644 --- a/bsp/lpc2148/drivers/dm9000.c +++ b/bsp/lpc2148/drivers/dm9000.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include "dm9000.h" diff --git a/bsp/lpc2148/drivers/sd.c b/bsp/lpc2148/drivers/sd.c index 95be32631b..d7b6769621 100644 --- a/bsp/lpc2148/drivers/sd.c +++ b/bsp/lpc2148/drivers/sd.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include #include diff --git a/bsp/lpc2148/drivers/serial.c b/bsp/lpc2148/drivers/serial.c index 5ad31af34a..0c78ecc026 100644 --- a/bsp/lpc2148/drivers/serial.c +++ b/bsp/lpc2148/drivers/serial.c @@ -1,11 +1,7 @@ /* - * File : serial.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc2478/applications/application.c b/bsp/lpc2478/applications/application.c index ea8d1d68a1..64dbf3c807 100644 --- a/bsp/lpc2478/applications/application.c +++ b/bsp/lpc2478/applications/application.c @@ -1,11 +1,7 @@ /* - * File : app.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc2478/applications/startup.c b/bsp/lpc2478/applications/startup.c index c262e57149..270312f7ae 100644 --- a/bsp/lpc2478/applications/startup.c +++ b/bsp/lpc2478/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc2478/drivers/board.c b/bsp/lpc2478/drivers/board.c index ac17305062..65ff918711 100644 --- a/bsp/lpc2478/drivers/board.c +++ b/bsp/lpc2478/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc2478/drivers/board.h b/bsp/lpc2478/drivers/board.h index 6271d45140..6386c19ba8 100644 --- a/bsp/lpc2478/drivers/board.h +++ b/bsp/lpc2478/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc2478/drivers/serial.c b/bsp/lpc2478/drivers/serial.c index 37c0d0c2ce..dff575c7cc 100644 --- a/bsp/lpc2478/drivers/serial.c +++ b/bsp/lpc2478/drivers/serial.c @@ -1,11 +1,7 @@ /* - * File : serial.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/applications/application.c b/bsp/lpc408x/applications/application.c index d8045587a6..29f7c36bba 100644 --- a/bsp/lpc408x/applications/application.c +++ b/bsp/lpc408x/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/applications/board.c b/bsp/lpc408x/applications/board.c index a2bb22bfe4..2deb02d930 100644 --- a/bsp/lpc408x/applications/board.c +++ b/bsp/lpc408x/applications/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/applications/board.h b/bsp/lpc408x/applications/board.h index 392dcf2031..654a5bea9e 100644 --- a/bsp/lpc408x/applications/board.h +++ b/bsp/lpc408x/applications/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/applications/canapp.c b/bsp/lpc408x/applications/canapp.c index 59250380f8..96a0ceeb39 100644 --- a/bsp/lpc408x/applications/canapp.c +++ b/bsp/lpc408x/applications/canapp.c @@ -1,11 +1,7 @@ /* - * File : canapp.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/applications/sram.c b/bsp/lpc408x/applications/sram.c index e7ac0fe158..633d3eb6d4 100644 --- a/bsp/lpc408x/applications/sram.c +++ b/bsp/lpc408x/applications/sram.c @@ -1,12 +1,8 @@ /* -* File : sram.c -* This file is part of RT-Thread RTOS -* COPYRIGHT (C) 2009-2013 RT-Thread Develop Team -* -* The license and distribution terms for this file may be -* found in the file LICENSE in this distribution or at -* http://www.rt-thread.org/license/LICENSE -* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * * Change Logs: * Date Author Notes * 2013-05-19 Bernard The first version for LPC40xx diff --git a/bsp/lpc408x/applications/sram.h b/bsp/lpc408x/applications/sram.h index 902337aafc..3aee2aab0b 100644 --- a/bsp/lpc408x/applications/sram.h +++ b/bsp/lpc408x/applications/sram.h @@ -1,11 +1,7 @@ /* - * File : sram.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/applications/startup.c b/bsp/lpc408x/applications/startup.c index bcab985a62..cb99fc16ff 100644 --- a/bsp/lpc408x/applications/startup.c +++ b/bsp/lpc408x/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/drivers/drv_emac.c b/bsp/lpc408x/drivers/drv_emac.c index 9f1e9920cb..7e38830f2c 100644 --- a/bsp/lpc408x/drivers/drv_emac.c +++ b/bsp/lpc408x/drivers/drv_emac.c @@ -1,11 +1,7 @@ /* - * File : drv_emac.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/drivers/drv_emac.h b/bsp/lpc408x/drivers/drv_emac.h index abadc18520..efaa0ac8e3 100644 --- a/bsp/lpc408x/drivers/drv_emac.h +++ b/bsp/lpc408x/drivers/drv_emac.h @@ -1,11 +1,7 @@ /* - * File : drv_emac.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/drivers/drv_hwtimer.c b/bsp/lpc408x/drivers/drv_hwtimer.c index 163c91fcd1..7946a7058a 100644 --- a/bsp/lpc408x/drivers/drv_hwtimer.c +++ b/bsp/lpc408x/drivers/drv_hwtimer.c @@ -1,11 +1,7 @@ /* - * File : drv_hwtimer.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/drivers/drv_led.c b/bsp/lpc408x/drivers/drv_led.c index 2103e934fb..dcbe76a7b8 100644 --- a/bsp/lpc408x/drivers/drv_led.c +++ b/bsp/lpc408x/drivers/drv_led.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include "board.h" diff --git a/bsp/lpc408x/drivers/drv_lpccan.c b/bsp/lpc408x/drivers/drv_lpccan.c index 037a4cf2ae..85d6511284 100644 --- a/bsp/lpc408x/drivers/drv_lpccan.c +++ b/bsp/lpc408x/drivers/drv_lpccan.c @@ -1,11 +1,7 @@ /* - * File : drv_lpccan.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/drivers/drv_lpccan.h b/bsp/lpc408x/drivers/drv_lpccan.h index 1d81912dc9..9dda61a1f6 100644 --- a/bsp/lpc408x/drivers/drv_lpccan.h +++ b/bsp/lpc408x/drivers/drv_lpccan.h @@ -1,11 +1,7 @@ /* - * File : drv_lpccan.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2015, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/drivers/drv_sdram.c b/bsp/lpc408x/drivers/drv_sdram.c index b648ed079c..515659f244 100644 --- a/bsp/lpc408x/drivers/drv_sdram.c +++ b/bsp/lpc408x/drivers/drv_sdram.c @@ -1,11 +1,7 @@ /* - * File : drv_sdram.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/drivers/drv_sdram.h b/bsp/lpc408x/drivers/drv_sdram.h index a689f1ed98..21c0791f32 100644 --- a/bsp/lpc408x/drivers/drv_sdram.h +++ b/bsp/lpc408x/drivers/drv_sdram.h @@ -1,11 +1,7 @@ /* - * File : drv_sdram.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/drivers/drv_uart.c b/bsp/lpc408x/drivers/drv_uart.c index ef50f3a4d8..8360ca17c6 100644 --- a/bsp/lpc408x/drivers/drv_uart.c +++ b/bsp/lpc408x/drivers/drv_uart.c @@ -1,11 +1,7 @@ /* - * File : drv_uart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc408x/drivers/drv_uart.h b/bsp/lpc408x/drivers/drv_uart.h index d93995b96e..aee8a379ed 100644 --- a/bsp/lpc408x/drivers/drv_uart.h +++ b/bsp/lpc408x/drivers/drv_uart.h @@ -1,11 +1,7 @@ /* - * File : drv_uart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2014 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc43xx/M0/applications/application.c b/bsp/lpc43xx/M0/applications/application.c index 8e861873c8..397f934777 100644 --- a/bsp/lpc43xx/M0/applications/application.c +++ b/bsp/lpc43xx/M0/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc43xx/M0/applications/board.c b/bsp/lpc43xx/M0/applications/board.c index 000bd52f40..cd1cf62df0 100644 --- a/bsp/lpc43xx/M0/applications/board.c +++ b/bsp/lpc43xx/M0/applications/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2014 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc43xx/M0/applications/board.h b/bsp/lpc43xx/M0/applications/board.h index ee300eb739..24dfee67d4 100644 --- a/bsp/lpc43xx/M0/applications/board.h +++ b/bsp/lpc43xx/M0/applications/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc43xx/M0/applications/startup.c b/bsp/lpc43xx/M0/applications/startup.c index f6cf534b03..df9cb7a211 100644 --- a/bsp/lpc43xx/M0/applications/startup.c +++ b/bsp/lpc43xx/M0/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc43xx/M0/applications/vbus_drv.c b/bsp/lpc43xx/M0/applications/vbus_drv.c index 24d7f19b58..88d5321b30 100644 --- a/bsp/lpc43xx/M0/applications/vbus_drv.c +++ b/bsp/lpc43xx/M0/applications/vbus_drv.c @@ -1,27 +1,7 @@ /* - * VMM Bus Driver - * - * COPYRIGHT (C) 2015, Shanghai Real-Thread Technology Co., Ltd - * http://www.rt-thread.com - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * Change Logs: * Date Author Notes * 2015-01-07 Grissiom add comment diff --git a/bsp/lpc43xx/M0/applications/vbus_hw.h b/bsp/lpc43xx/M0/applications/vbus_hw.h index b88586a112..cceee706b4 100644 --- a/bsp/lpc43xx/M0/applications/vbus_hw.h +++ b/bsp/lpc43xx/M0/applications/vbus_hw.h @@ -1,26 +1,7 @@ /* - * VMM Bus - * - * COPYRIGHT (C) 2015, Shanghai Real-Thread Technology Co., Ltd - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * Change Logs: * Date Author Notes * 2015-01-07 Grissiom init commit diff --git a/bsp/lpc43xx/M4/applications/application.c b/bsp/lpc43xx/M4/applications/application.c index 6575991895..b08a158400 100644 --- a/bsp/lpc43xx/M4/applications/application.c +++ b/bsp/lpc43xx/M4/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2014, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc43xx/M4/applications/board.c b/bsp/lpc43xx/M4/applications/board.c index dc0859f666..c6bfa10574 100644 --- a/bsp/lpc43xx/M4/applications/board.c +++ b/bsp/lpc43xx/M4/applications/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2014 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc43xx/M4/applications/board.h b/bsp/lpc43xx/M4/applications/board.h index 299404a368..0450724e53 100644 --- a/bsp/lpc43xx/M4/applications/board.h +++ b/bsp/lpc43xx/M4/applications/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc43xx/M4/applications/startup.c b/bsp/lpc43xx/M4/applications/startup.c index f6cf534b03..df9cb7a211 100644 --- a/bsp/lpc43xx/M4/applications/startup.c +++ b/bsp/lpc43xx/M4/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc43xx/M4/applications/vbus_drv.c b/bsp/lpc43xx/M4/applications/vbus_drv.c index 872de86504..bd3ae03adb 100644 --- a/bsp/lpc43xx/M4/applications/vbus_drv.c +++ b/bsp/lpc43xx/M4/applications/vbus_drv.c @@ -1,27 +1,7 @@ /* - * VMM Bus Driver - * - * COPYRIGHT (C) 2015, Shanghai Real-Thread Technology Co., Ltd - * http://www.rt-thread.com - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * Change Logs: * Date Author Notes * 2015-01-07 Grissiom add comment diff --git a/bsp/lpc43xx/M4/applications/vbus_hw.h b/bsp/lpc43xx/M4/applications/vbus_hw.h index b88586a112..cceee706b4 100644 --- a/bsp/lpc43xx/M4/applications/vbus_hw.h +++ b/bsp/lpc43xx/M4/applications/vbus_hw.h @@ -1,26 +1,7 @@ /* - * VMM Bus - * - * COPYRIGHT (C) 2015, Shanghai Real-Thread Technology Co., Ltd - * - * This file is part of RT-Thread (http://www.rt-thread.org) - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * + * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd + * + * SPDX-License-Identifier: Apache-2.0 * Change Logs: * Date Author Notes * 2015-01-07 Grissiom init commit diff --git a/bsp/lpc43xx/drivers/drv_emac.c b/bsp/lpc43xx/drivers/drv_emac.c index a339bdb361..d1f02af768 100644 --- a/bsp/lpc43xx/drivers/drv_emac.c +++ b/bsp/lpc43xx/drivers/drv_emac.c @@ -1,11 +1,7 @@ /* - * File : drv_emac.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc43xx/drivers/drv_emac.h b/bsp/lpc43xx/drivers/drv_emac.h index abadc18520..efaa0ac8e3 100644 --- a/bsp/lpc43xx/drivers/drv_emac.h +++ b/bsp/lpc43xx/drivers/drv_emac.h @@ -1,11 +1,7 @@ /* - * File : drv_emac.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc43xx/drivers/drv_led.c b/bsp/lpc43xx/drivers/drv_led.c index d67344e54e..73128c243c 100644 --- a/bsp/lpc43xx/drivers/drv_led.c +++ b/bsp/lpc43xx/drivers/drv_led.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include "board.h" #include "drv_led.h" diff --git a/bsp/lpc43xx/drivers/drv_uart.c b/bsp/lpc43xx/drivers/drv_uart.c index 70f4a880e1..e1b203a359 100644 --- a/bsp/lpc43xx/drivers/drv_uart.c +++ b/bsp/lpc43xx/drivers/drv_uart.c @@ -1,11 +1,7 @@ /* - * File : drv_uart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc5410x/applications/application.c b/bsp/lpc5410x/applications/application.c index 627e97c860..bad0922693 100644 --- a/bsp/lpc5410x/applications/application.c +++ b/bsp/lpc5410x/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc5410x/applications/board.c b/bsp/lpc5410x/applications/board.c index c47e02c0c1..0fb09e6574 100644 --- a/bsp/lpc5410x/applications/board.c +++ b/bsp/lpc5410x/applications/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc5410x/applications/board.h b/bsp/lpc5410x/applications/board.h index 29c8514136..5bbf8bc235 100644 --- a/bsp/lpc5410x/applications/board.h +++ b/bsp/lpc5410x/applications/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc5410x/applications/demo_thread.c b/bsp/lpc5410x/applications/demo_thread.c index f4bcea9773..6acb8ae0ef 100644 --- a/bsp/lpc5410x/applications/demo_thread.c +++ b/bsp/lpc5410x/applications/demo_thread.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include "drv_led.h" #include "drv_uart.h" diff --git a/bsp/lpc5410x/applications/startup.c b/bsp/lpc5410x/applications/startup.c index 4008c3dcde..6589dc6b46 100644 --- a/bsp/lpc5410x/applications/startup.c +++ b/bsp/lpc5410x/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc5410x/drivers/drv_led.c b/bsp/lpc5410x/drivers/drv_led.c index d2b778a7dd..8923e3fda4 100644 --- a/bsp/lpc5410x/drivers/drv_led.c +++ b/bsp/lpc5410x/drivers/drv_led.c @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ #include #include "board.h" diff --git a/bsp/lpc5410x/drivers/drv_uart.c b/bsp/lpc5410x/drivers/drv_uart.c index 59f4ef183f..d348921740 100644 --- a/bsp/lpc5410x/drivers/drv_uart.c +++ b/bsp/lpc5410x/drivers/drv_uart.c @@ -1,11 +1,7 @@ /* - * File : drv_uart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2014 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/applications/application.c b/bsp/lpc54608-LPCXpresso/applications/application.c index c282a290e9..b85de95df6 100644 --- a/bsp/lpc54608-LPCXpresso/applications/application.c +++ b/bsp/lpc54608-LPCXpresso/applications/application.c @@ -1,20 +1,7 @@ /* - * File : application.c - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/applications/mnt.c b/bsp/lpc54608-LPCXpresso/applications/mnt.c index 4f87859b59..dd1f862ea5 100644 --- a/bsp/lpc54608-LPCXpresso/applications/mnt.c +++ b/bsp/lpc54608-LPCXpresso/applications/mnt.c @@ -1,20 +1,7 @@ /* - * File : mnt.c - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/applications/startup.c b/bsp/lpc54608-LPCXpresso/applications/startup.c index 1015c5ae27..687cc0f864 100644 --- a/bsp/lpc54608-LPCXpresso/applications/startup.c +++ b/bsp/lpc54608-LPCXpresso/applications/startup.c @@ -1,20 +1,7 @@ /* - * File : startup.c - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/board.c b/bsp/lpc54608-LPCXpresso/drivers/board.c index d2cec9a4fa..51c72ec3f5 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/board.c +++ b/bsp/lpc54608-LPCXpresso/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/board.h b/bsp/lpc54608-LPCXpresso/drivers/board.h index d733e9e407..679f33682f 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/board.h +++ b/bsp/lpc54608-LPCXpresso/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drt_mpu.c b/bsp/lpc54608-LPCXpresso/drivers/drt_mpu.c index e587948ca2..c6c5d114e4 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drt_mpu.c +++ b/bsp/lpc54608-LPCXpresso/drivers/drt_mpu.c @@ -1,20 +1,7 @@ /* - * File : application.c - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drt_mpu.h b/bsp/lpc54608-LPCXpresso/drivers/drt_mpu.h index 5f38ae2eb6..ff34c225e7 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drt_mpu.h +++ b/bsp/lpc54608-LPCXpresso/drivers/drt_mpu.h @@ -1,20 +1,7 @@ /* - * File : application.c - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drv_emac.c b/bsp/lpc54608-LPCXpresso/drivers/drv_emac.c index 1f38471fca..b432aea70e 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drv_emac.c +++ b/bsp/lpc54608-LPCXpresso/drivers/drv_emac.c @@ -1,20 +1,7 @@ /* - * File : drv_emac.c - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drv_emac.h b/bsp/lpc54608-LPCXpresso/drivers/drv_emac.h index abadc18520..efaa0ac8e3 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drv_emac.h +++ b/bsp/lpc54608-LPCXpresso/drivers/drv_emac.h @@ -1,11 +1,7 @@ /* - * File : drv_emac.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drv_ft5406.c b/bsp/lpc54608-LPCXpresso/drivers/drv_ft5406.c index 92ab3592bd..fd46a199c0 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drv_ft5406.c +++ b/bsp/lpc54608-LPCXpresso/drivers/drv_ft5406.c @@ -1,21 +1,7 @@ /* - * File : drv_ft5406.c - * FT5406 touch driver - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drv_i2c.c b/bsp/lpc54608-LPCXpresso/drivers/drv_i2c.c index 27013feaf6..2d9a3c4d17 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drv_i2c.c +++ b/bsp/lpc54608-LPCXpresso/drivers/drv_i2c.c @@ -1,20 +1,7 @@ /* - * File : drv_i2c.c - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drv_lcd.c b/bsp/lpc54608-LPCXpresso/drivers/drv_lcd.c index 4b6b805f6c..c1a6660819 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drv_lcd.c +++ b/bsp/lpc54608-LPCXpresso/drivers/drv_lcd.c @@ -1,20 +1,7 @@ /* - * File : drv_lcd.c - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drv_sd.c b/bsp/lpc54608-LPCXpresso/drivers/drv_sd.c index 9400671301..e1239b7899 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drv_sd.c +++ b/bsp/lpc54608-LPCXpresso/drivers/drv_sd.c @@ -1,20 +1,7 @@ /* - * File : drv_sd.c - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drv_sd.h b/bsp/lpc54608-LPCXpresso/drivers/drv_sd.h index 952d6a6048..d36134eaa4 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drv_sd.h +++ b/bsp/lpc54608-LPCXpresso/drivers/drv_sd.h @@ -1,12 +1,7 @@ /* - * File : drv_sd.h - * SPI mode SD Card Driver - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drv_sdram.c b/bsp/lpc54608-LPCXpresso/drivers/drv_sdram.c index f01d815cc4..9b6438c4d2 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drv_sdram.c +++ b/bsp/lpc54608-LPCXpresso/drivers/drv_sdram.c @@ -1,20 +1,7 @@ /* - * File : drv_sdram.c - * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drv_sdram.h b/bsp/lpc54608-LPCXpresso/drivers/drv_sdram.h index 956498f929..4de79410b0 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drv_sdram.h +++ b/bsp/lpc54608-LPCXpresso/drivers/drv_sdram.h @@ -1,11 +1,7 @@ /* - * File : drv_sdram.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drv_sram.c b/bsp/lpc54608-LPCXpresso/drivers/drv_sram.c index fb3266b2c3..81f4ba6e9c 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drv_sram.c +++ b/bsp/lpc54608-LPCXpresso/drivers/drv_sram.c @@ -1,12 +1,8 @@ /* -* File : sram.c -* This file is part of RT-Thread RTOS -* COPYRIGHT (C) 2009-2013 RT-Thread Develop Team -* -* The license and distribution terms for this file may be -* found in the file LICENSE in this distribution or at -* http://www.rt-thread.org/license/LICENSE -* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * * Change Logs: * Date Author Notes * 2013-05-19 Bernard The first version for LPC40xx diff --git a/bsp/lpc54608-LPCXpresso/drivers/drv_sram.h b/bsp/lpc54608-LPCXpresso/drivers/drv_sram.h index b5db6209db..14c87054ff 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drv_sram.h +++ b/bsp/lpc54608-LPCXpresso/drivers/drv_sram.h @@ -1,11 +1,7 @@ /* - * File : sram.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc54608-LPCXpresso/drivers/drv_uart.c b/bsp/lpc54608-LPCXpresso/drivers/drv_uart.c index d08d192617..7c9bd9fc7f 100644 --- a/bsp/lpc54608-LPCXpresso/drivers/drv_uart.c +++ b/bsp/lpc54608-LPCXpresso/drivers/drv_uart.c @@ -1,11 +1,7 @@ /* - * File : drv_uart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009-2014 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc824/applications/application.c b/bsp/lpc824/applications/application.c index 8d408d717b..f8ef7f40e3 100644 --- a/bsp/lpc824/applications/application.c +++ b/bsp/lpc824/applications/application.c @@ -1,11 +1,7 @@ /* - * File : application.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc824/applications/startup.c b/bsp/lpc824/applications/startup.c index 15c949df7e..5e95382ba0 100644 --- a/bsp/lpc824/applications/startup.c +++ b/bsp/lpc824/applications/startup.c @@ -1,11 +1,7 @@ /* - * File : startup.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://openlab.rt-thread.com/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc824/drivers/board.c b/bsp/lpc824/drivers/board.c index ea941abc64..51656718b8 100644 --- a/bsp/lpc824/drivers/board.c +++ b/bsp/lpc824/drivers/board.c @@ -1,11 +1,7 @@ /* - * File : board.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc824/drivers/board.h b/bsp/lpc824/drivers/board.h index b89e518128..c8d21d94b5 100644 --- a/bsp/lpc824/drivers/board.h +++ b/bsp/lpc824/drivers/board.h @@ -1,11 +1,7 @@ /* - * File : board.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc824/drivers/usart.c b/bsp/lpc824/drivers/usart.c index b36a2080d6..5109164a9a 100644 --- a/bsp/lpc824/drivers/usart.c +++ b/bsp/lpc824/drivers/usart.c @@ -1,11 +1,7 @@ /* - * File : usart.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006-2013, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes diff --git a/bsp/lpc824/drivers/usart.h b/bsp/lpc824/drivers/usart.h index abd7631fee..1db28e9385 100644 --- a/bsp/lpc824/drivers/usart.h +++ b/bsp/lpc824/drivers/usart.h @@ -1,11 +1,7 @@ /* - * File : usart.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * Copyright (c) 2006-2018, RT-Thread Development Team * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rt-thread.org/license/LICENSE + * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes From cc0f5ca1cdb124a6279cffe442407e4ff638d3cc Mon Sep 17 00:00:00 2001 From: armink Date: Tue, 23 Oct 2018 16:03:17 +0800 Subject: [PATCH 29/31] [kernel][mem] Improve some ISR check range. --- src/mem.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/mem.c b/src/mem.c index cb96ab9ee0..2fefb48b67 100644 --- a/src/mem.c +++ b/src/mem.c @@ -261,11 +261,11 @@ void *rt_malloc(rt_size_t size) rt_size_t ptr, ptr2; struct heap_mem *mem, *mem2; - RT_DEBUG_NOT_IN_INTERRUPT; - if (size == 0) return RT_NULL; + RT_DEBUG_NOT_IN_INTERRUPT; + if (size != RT_ALIGN(size, RT_ALIGN_SIZE)) RT_DEBUG_LOG(RT_DEBUG_MEM, ("malloc size %d, but align to %d\n", size, RT_ALIGN(size, RT_ALIGN_SIZE))); @@ -513,8 +513,6 @@ void *rt_calloc(rt_size_t count, rt_size_t size) { void *p; - RT_DEBUG_NOT_IN_INTERRUPT; - /* allocate 'count' objects of size 'size' */ p = rt_malloc(count * size); @@ -536,10 +534,11 @@ void rt_free(void *rmem) { struct heap_mem *mem; - RT_DEBUG_NOT_IN_INTERRUPT; - if (rmem == RT_NULL) return; + + RT_DEBUG_NOT_IN_INTERRUPT; + RT_ASSERT((((rt_uint32_t)rmem) & (RT_ALIGN_SIZE - 1)) == 0); RT_ASSERT((rt_uint8_t *)rmem >= (rt_uint8_t *)heap_ptr && (rt_uint8_t *)rmem < (rt_uint8_t *)heap_end); From d3764db892e4e97b6d599bda867eaa49b0ad4786 Mon Sep 17 00:00:00 2001 From: liruncong Date: Tue, 23 Oct 2018 20:03:18 +0800 Subject: [PATCH 30/31] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BB=A5=E4=B8=8B?= =?UTF-8?q?=E9=97=AE=E9=A2=98:=201)=20usb=E9=A9=B1=E5=8A=A8=E4=B8=AD?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=9C=AA=E4=B8=8ERT=5FTICK=5FPER=5FSECOND?= =?UTF-8?q?=E5=85=B3=E8=81=94=E9=97=AE=E9=A2=98,RT=5FTICK=5FPER=5FSECOND?= =?UTF-8?q?=E5=8F=98=E5=8C=96=E6=97=B6,=E8=BF=99=E4=BA=9B=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=B0=86=E5=8F=91=E7=94=9F=E5=8F=98=E5=8C=96=20?= =?UTF-8?q?=E8=A7=A3=E5=86=B3:=20=E5=A2=9E=E5=8A=A0USB=5FTIMEOUT=5FBASIC/U?= =?UTF-8?q?SB=5FTIMEOUT=5FLONG/USB=5FDEBOUNCE=5FTIME=202)=20=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3rt=5Fusbh=5Fdetach=5Finstance=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E4=BD=BF=E7=94=A8device->cfg=5Fdesc=E5=89=8D=E6=9C=AA=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=98=AF=E5=90=A6=E6=9C=89=E6=95=88.=20=E5=8F=AF?= =?UTF-8?q?=E5=AF=BC=E8=87=B4abort=203)=20rt=5Fusbh=5Fhub=5Fport=5Fchange?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0device->port=E5=88=9D=E5=A7=8B=E5=8C=96,?= =?UTF-8?q?=E5=90=A6=E5=88=99struct=20uhcd=5Fops=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E6=97=A0=E6=B3=95=E7=9B=B4=E6=8E=A5=E5=BE=97?= =?UTF-8?q?=E5=88=B0=E7=AB=AF=E5=8F=A3=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drivers/include/drivers/usb_common.h | 13 ++++++++ .../drivers/include/drivers/usb_device.h | 9 ++++++ components/drivers/usb/usbhost/class/adk.c | 6 ++-- components/drivers/usb/usbhost/class/hid.c | 14 ++++----- components/drivers/usb/usbhost/class/mass.c | 12 ++++---- components/drivers/usb/usbhost/class/udisk.c | 10 +++---- components/drivers/usb/usbhost/core/core.c | 30 ++++++++++--------- components/drivers/usb/usbhost/core/hub.c | 20 ++++++++----- 8 files changed, 71 insertions(+), 43 deletions(-) diff --git a/components/drivers/include/drivers/usb_common.h b/components/drivers/include/drivers/usb_common.h index 7398fc3814..764dcd5612 100644 --- a/components/drivers/include/drivers/usb_common.h +++ b/components/drivers/include/drivers/usb_common.h @@ -216,6 +216,19 @@ extern "C" { #define HID_REPORT_ID_GENERAL 5 #define HID_REPORT_ID_MOUSE 6 +/* + * Time of usb timeout + */ +#ifndef USB_TIMEOUT_BASIC +#define USB_TIMEOUT_BASIC (RT_TICK_PER_SECOND) /* 1s */ +#endif +#ifndef USB_TIMEOUT_LONG +#define USB_TIMEOUT_LONG (RT_TICK_PER_SECOND * 5) /* 5s */ +#endif +#ifndf USB_DEBOUNCE_TIME +#define USB_DEBOUNCE_TIME (RT_TICK_PER_SECOND / 5) /* 0.2s */ +#endif + #define uswap_32(x) \ ((((x) & 0xff000000) >> 24) | \ (((x) & 0x00ff0000) >> 8) | \ diff --git a/components/drivers/include/drivers/usb_device.h b/components/drivers/include/drivers/usb_device.h index cb4122fdaf..26f0c4cf4a 100644 --- a/components/drivers/include/drivers/usb_device.h +++ b/components/drivers/include/drivers/usb_device.h @@ -17,6 +17,10 @@ #include #include "drivers/usb_common.h" +#ifdef __cplusplus +extern "C" { +#endif + /* Vendor ID */ #ifdef USB_VENDOR_ID #define _VENDOR_ID USB_VENDOR_ID @@ -453,4 +457,9 @@ rt_inline void usbd_os_proerty_descriptor_send(ufunction_t func, ureq_t setup, u } rt_usbd_ep0_write(func->device, data, setup->wLength); } + +#ifdef __cplusplus +} +#endif + #endif diff --git a/components/drivers/usb/usbhost/class/adk.c b/components/drivers/usb/usbhost/class/adk.c index 62f6758962..2425de7bba 100644 --- a/components/drivers/usb/usbhost/class/adk.c +++ b/components/drivers/usb/usbhost/class/adk.c @@ -55,7 +55,7 @@ static rt_err_t rt_usbh_adk_get_protocol(struct uintf* intf, rt_uint16_t *protoc { struct urequest setup; uinst_t device; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(intf != RT_NULL); @@ -89,7 +89,7 @@ static rt_err_t rt_usbh_adk_send_string(struct uintf* intf, rt_uint16_t index, { struct urequest setup; uinst_t device; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(intf != RT_NULL); @@ -122,7 +122,7 @@ static rt_err_t rt_usbh_adk_start(struct uintf* intf) { struct urequest setup; uinst_t device; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(intf != RT_NULL); diff --git a/components/drivers/usb/usbhost/class/hid.c b/components/drivers/usb/usbhost/class/hid.c index d297a5cb51..e16096877f 100644 --- a/components/drivers/usb/usbhost/class/hid.c +++ b/components/drivers/usb/usbhost/class/hid.c @@ -30,7 +30,7 @@ rt_err_t rt_usbh_hid_set_idle(struct uintf* intf, int duration, int report_id) { struct urequest setup; struct uinstance* device; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(intf != RT_NULL); @@ -64,7 +64,7 @@ rt_err_t rt_usbh_hid_get_report(struct uintf* intf, rt_uint8_t type, { struct urequest setup; struct uinstance* device; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(intf != RT_NULL); @@ -97,7 +97,7 @@ rt_err_t rt_usbh_hid_set_report(struct uintf* intf, rt_uint8_t *buffer, rt_size_ { struct urequest setup; struct uinstance* device; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(intf != RT_NULL); @@ -129,7 +129,7 @@ rt_err_t rt_usbh_hid_set_protocal(struct uintf* intf, int protocol) { struct urequest setup; struct uinstance* device; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(intf != RT_NULL); @@ -164,7 +164,7 @@ rt_err_t rt_usbh_hid_get_report_descriptor(struct uintf* intf, { struct urequest setup; struct uinstance* device; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(intf != RT_NULL); @@ -214,7 +214,7 @@ static void rt_usbh_hid_callback(void* context) { upipe_t pipe; struct uhid* hid; - int timeout = 300; + int timeout = USB_TIMEOUT_LONG; /* parameter check */ RT_ASSERT(context != RT_NULL); @@ -269,7 +269,7 @@ static rt_err_t rt_usbh_hid_enable(void* arg) uprotocal_t protocal; struct uhid* hid; struct uintf* intf = (struct uintf*)arg; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; upipe_t pipe; /* parameter check */ diff --git a/components/drivers/usb/usbhost/class/mass.c b/components/drivers/usb/usbhost/class/mass.c index a933af471a..20048873f5 100644 --- a/components/drivers/usb/usbhost/class/mass.c +++ b/components/drivers/usb/usbhost/class/mass.c @@ -190,7 +190,7 @@ rt_err_t rt_usbh_storage_get_max_lun(struct uhintf* intf, rt_uint8_t* max_lun) { struct uinstance* device; struct urequest setup; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; if(intf == RT_NULL) { @@ -240,7 +240,7 @@ rt_err_t rt_usbh_storage_reset(struct uhintf* intf) { struct urequest setup; struct uinstance* device; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ if(intf == RT_NULL) @@ -377,7 +377,7 @@ rt_err_t rt_usbh_storage_write10(struct uhintf* intf, rt_uint8_t *buffer, rt_err_t rt_usbh_storage_request_sense(struct uhintf* intf, rt_uint8_t* buffer) { struct ustorage_cbw cmd; - int timeout = 200; + int timeout = USB_TIMEOUT_LONG; /* parameter check */ if(intf == RT_NULL) @@ -413,7 +413,7 @@ rt_err_t rt_usbh_storage_request_sense(struct uhintf* intf, rt_uint8_t* buffer) rt_err_t rt_usbh_storage_test_unit_ready(struct uhintf* intf) { struct ustorage_cbw cmd; - int timeout = 200; + int timeout = USB_TIMEOUT_LONG; /* parameter check */ if(intf == RT_NULL) @@ -449,7 +449,7 @@ rt_err_t rt_usbh_storage_test_unit_ready(struct uhintf* intf) rt_err_t rt_usbh_storage_inquiry(struct uhintf* intf, rt_uint8_t* buffer) { struct ustorage_cbw cmd; - int timeout = 200; + int timeout = USB_TIMEOUT_LONG; /* parameter check */ if(intf == RT_NULL) @@ -486,7 +486,7 @@ rt_err_t rt_usbh_storage_inquiry(struct uhintf* intf, rt_uint8_t* buffer) rt_err_t rt_usbh_storage_get_capacity(struct uhintf* intf, rt_uint8_t* buffer) { struct ustorage_cbw cmd; - int timeout = 200; + int timeout = USB_TIMEOUT_LONG; /* parameter check */ if(intf == RT_NULL) diff --git a/components/drivers/usb/usbhost/class/udisk.c b/components/drivers/usb/usbhost/class/udisk.c index d9c522e76b..1509a26105 100644 --- a/components/drivers/usb/usbhost/class/udisk.c +++ b/components/drivers/usb/usbhost/class/udisk.c @@ -70,13 +70,13 @@ static rt_size_t rt_udisk_read(rt_device_t dev, rt_off_t pos, void* buffer, rt_err_t ret; struct uhintf* intf; struct ustor_data* data; - int timeout = 500; + int timeout = USB_TIMEOUT_LONG; /* check parameter */ RT_ASSERT(dev != RT_NULL); RT_ASSERT(buffer != RT_NULL); - if(size > 4096) timeout = 800; + if(size > 4096) timeout *= 2; data = (struct ustor_data*)dev->user_data; intf = data->intf; @@ -108,13 +108,13 @@ static rt_size_t rt_udisk_write (rt_device_t dev, rt_off_t pos, const void* buff rt_err_t ret; struct uhintf* intf; struct ustor_data* data; - int timeout = 500; + int timeout = USB_TIMEOUT_LONG; /* check parameter */ RT_ASSERT(dev != RT_NULL); RT_ASSERT(buffer != RT_NULL); - if(size * SECTOR_SIZE > 4096) timeout = 800; + if(size * SECTOR_SIZE > 4096) timeout *= 2; data = (struct ustor_data*)dev->user_data; intf = data->intf; @@ -293,7 +293,7 @@ rt_err_t rt_udisk_run(struct uhintf* intf) RT_DEBUG_LOG(RT_DEBUG_USB, ("read partition table\n")); /* get the partition table */ - ret = rt_usbh_storage_read10(intf, sector, 0, 1, 500); + ret = rt_usbh_storage_read10(intf, sector, 0, 1, USB_TIMEOUT_LONG); if(ret != RT_EOK) { rt_kprintf("read parition table error\n"); diff --git a/components/drivers/usb/usbhost/core/core.c b/components/drivers/usb/usbhost/core/core.c index b5da9da72a..71341a33c3 100644 --- a/components/drivers/usb/usbhost/core/core.c +++ b/components/drivers/usb/usbhost/core/core.c @@ -260,18 +260,20 @@ rt_err_t rt_usbh_detach_instance(uinst_t device) } /* free configration descriptor */ - for(i=0; icfg_desc->bNumInterfaces; i++) - { - if(device->intf[i] == RT_NULL) continue; - if(device->intf[i]->drv == RT_NULL) continue; + if (device->cfg_desc) { + for (i = 0; i < device->cfg_desc->bNumInterfaces; i++) + { + if (device->intf[i] == RT_NULL) continue; + if (device->intf[i]->drv == RT_NULL) continue; - RT_ASSERT(device->intf[i]->device == device); + RT_ASSERT(device->intf[i]->device == device); - RT_DEBUG_LOG(RT_DEBUG_USB, ("free interface instance %d\n", i)); - rt_usbh_class_driver_disable(device->intf[i]->drv, (void*)device->intf[i]); - rt_free(device->intf[i]); + RT_DEBUG_LOG(RT_DEBUG_USB, ("free interface instance %d\n", i)); + rt_usbh_class_driver_disable(device->intf[i]->drv, (void*)device->intf[i]); + rt_free(device->intf[i]); + } + rt_free(device->cfg_desc); } - if(device->cfg_desc) rt_free(device->cfg_desc); rt_usb_hcd_free_pipe(device->hcd,device->pipe_ep0_out); rt_usb_hcd_free_pipe(device->hcd,device->pipe_ep0_in); @@ -301,7 +303,7 @@ rt_err_t rt_usbh_get_descriptor(uinst_t device, rt_uint8_t type, void* buffer, int nbytes) { struct urequest setup; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; RT_ASSERT(device != RT_NULL); @@ -335,7 +337,7 @@ rt_err_t rt_usbh_get_descriptor(uinst_t device, rt_uint8_t type, void* buffer, rt_err_t rt_usbh_set_address(uinst_t device) { struct urequest setup; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; RT_ASSERT(device != RT_NULL); @@ -371,7 +373,7 @@ rt_err_t rt_usbh_set_address(uinst_t device) rt_err_t rt_usbh_set_configure(uinst_t device, int config) { struct urequest setup; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* check parameter */ RT_ASSERT(device != RT_NULL); @@ -405,7 +407,7 @@ rt_err_t rt_usbh_set_configure(uinst_t device, int config) rt_err_t rt_usbh_set_interface(uinst_t device, int intf) { struct urequest setup; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* check parameter */ RT_ASSERT(device != RT_NULL); @@ -436,7 +438,7 @@ rt_err_t rt_usbh_set_interface(uinst_t device, int intf) rt_err_t rt_usbh_clear_feature(uinst_t device, int endpoint, int feature) { struct urequest setup; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* check parameter */ RT_ASSERT(device != RT_NULL); diff --git a/components/drivers/usb/usbhost/core/hub.c b/components/drivers/usb/usbhost/core/hub.c index 11aa1ebf1b..80ed9b4e3f 100644 --- a/components/drivers/usb/usbhost/core/hub.c +++ b/components/drivers/usb/usbhost/core/hub.c @@ -118,7 +118,7 @@ void rt_usbh_root_hub_disconnect_handler(struct uhcd *hcd, rt_uint8_t port) rt_err_t rt_usbh_hub_get_descriptor(struct uinstance* device, rt_uint8_t *buffer, rt_size_t nbytes) { struct urequest setup; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(device != RT_NULL); @@ -151,7 +151,7 @@ rt_err_t rt_usbh_hub_get_descriptor(struct uinstance* device, rt_uint8_t *buffer rt_err_t rt_usbh_hub_get_status(struct uinstance* device, rt_uint32_t* buffer) { struct urequest setup; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(device != RT_NULL); @@ -184,7 +184,7 @@ rt_err_t rt_usbh_hub_get_status(struct uinstance* device, rt_uint32_t* buffer) rt_err_t rt_usbh_hub_get_port_status(uhub_t hub, rt_uint16_t port, rt_uint32_t* buffer) { struct urequest setup; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(hub != RT_NULL); @@ -226,7 +226,7 @@ rt_err_t rt_usbh_hub_get_port_status(uhub_t hub, rt_uint16_t port, rt_uint32_t* rt_err_t rt_usbh_hub_clear_port_feature(uhub_t hub, rt_uint16_t port, rt_uint16_t feature) { struct urequest setup; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(hub != RT_NULL); @@ -267,7 +267,7 @@ rt_err_t rt_usbh_hub_set_port_feature(uhub_t hub, rt_uint16_t port, rt_uint16_t feature) { struct urequest setup; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; /* parameter check */ RT_ASSERT(hub != RT_NULL); @@ -345,6 +345,9 @@ rt_err_t rt_usbh_hub_port_debounce(uhub_t hub, rt_uint16_t port) int i = 0, times = 20; rt_uint32_t pstatus; rt_bool_t connect = RT_TRUE; + int delayticks = USB_DEBOUNCE_TIME / times; + if (delayticks < 1) + delayticks = 1; /* parameter check */ RT_ASSERT(hub != RT_NULL); @@ -360,7 +363,7 @@ rt_err_t rt_usbh_hub_port_debounce(uhub_t hub, rt_uint16_t port) break; } - rt_thread_delay(1); + rt_thread_delay(delayticks); } if(connect) return RT_EOK; @@ -428,6 +431,7 @@ static rt_err_t rt_usbh_hub_port_change(uhub_t hub) device->speed = (pstatus & PORT_LSDA) ? 1 : 0; device->parent_hub = hub; device->hcd = hub->hcd; + device->port = i + 1; hub->child[i] = device; /* reset usb roothub port */ @@ -452,7 +456,7 @@ static void rt_usbh_hub_irq(void* context) { upipe_t pipe; uhub_t hub; - int timeout = 100; + int timeout = USB_TIMEOUT_BASIC; RT_ASSERT(context != RT_NULL); @@ -493,7 +497,7 @@ static rt_err_t rt_usbh_hub_enable(void *arg) struct uinstance* device; struct uhintf* intf = (struct uhintf*)arg; upipe_t pipe_in = RT_NULL; - int timeout = 300; + int timeout = USB_TIMEOUT_LONG; /* paremeter check */ RT_ASSERT(intf != RT_NULL); From 135ec47a6a5e3c2ce3811c5982067096528d8fd6 Mon Sep 17 00:00:00 2001 From: tyx <462747508@qq.com> Date: Thu, 25 Oct 2018 16:36:46 +0800 Subject: [PATCH 31/31] =?UTF-8?q?[bsp][amebaz]=E6=94=AF=E6=8C=81IAR?= =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E5=8F=8Asmartconfig=E9=85=8D=E7=BD=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/amebaz/.config | 12 +- bsp/amebaz/Kconfig | 1 + bsp/amebaz/README.md | 177 +- bsp/amebaz/applications/smartconfig_app.c | 146 + bsp/amebaz/drivers/board.c | 6 +- bsp/amebaz/drivers/board.h | 12 +- bsp/amebaz/drivers/drv_uart.c | 10 +- bsp/amebaz/drivers/drv_uart.h | 3 - bsp/amebaz/drivers/wlan/drv_wifi.c | 18 +- bsp/amebaz/drivers/wlan/drv_wlan.c | 13 +- bsp/amebaz/drivers/wlan/drv_wlan.h | 26 +- bsp/amebaz/figures/iar_build.png | Bin 0 -> 17065 bytes bsp/amebaz/figures/iar_download.png | Bin 0 -> 25977 bytes bsp/amebaz/figures/image-tool_v2.2.0.png | Bin 0 -> 138251 bytes bsp/amebaz/libraries/Kconfig | 7 + bsp/amebaz/libraries/SConscript | 12 + bsp/amebaz/libraries/smartconfig/SConscript | 18 + .../libraries/smartconfig/inc/smartconfig.h | 62 + .../libs/libsmartconfig_armcm4_gcc.a | Bin 0 -> 60214 bytes .../libs/libsmartconfig_armcm4_iar.a | Bin 0 -> 120632 bytes bsp/amebaz/project.ewd | 2697 ++++++++++++++++ bsp/amebaz/project.ewp | 2434 +++++++++++++++ bsp/amebaz/project.eww | 10 + bsp/amebaz/rtconfig.h | 9 +- bsp/amebaz/rtconfig.py | 45 +- bsp/amebaz/template.ewd | 2733 +++++++++++++++++ bsp/amebaz/template.ewp | 1898 ++++++++++++ bsp/amebaz/template.ewt | 2098 +++++++++++++ bsp/amebaz/template.eww | 10 + bsp/amebaz/tmp.board | 21 + 30 files changed, 12344 insertions(+), 134 deletions(-) create mode 100644 bsp/amebaz/applications/smartconfig_app.c create mode 100644 bsp/amebaz/figures/iar_build.png create mode 100644 bsp/amebaz/figures/iar_download.png create mode 100644 bsp/amebaz/figures/image-tool_v2.2.0.png create mode 100644 bsp/amebaz/libraries/Kconfig create mode 100644 bsp/amebaz/libraries/SConscript create mode 100644 bsp/amebaz/libraries/smartconfig/SConscript create mode 100644 bsp/amebaz/libraries/smartconfig/inc/smartconfig.h create mode 100644 bsp/amebaz/libraries/smartconfig/libs/libsmartconfig_armcm4_gcc.a create mode 100644 bsp/amebaz/libraries/smartconfig/libs/libsmartconfig_armcm4_iar.a create mode 100644 bsp/amebaz/project.ewd create mode 100644 bsp/amebaz/project.ewp create mode 100644 bsp/amebaz/project.eww create mode 100644 bsp/amebaz/template.ewd create mode 100644 bsp/amebaz/template.ewp create mode 100644 bsp/amebaz/template.ewt create mode 100644 bsp/amebaz/template.eww create mode 100644 bsp/amebaz/tmp.board diff --git a/bsp/amebaz/.config b/bsp/amebaz/.config index 775f77a112..4a513007e7 100644 --- a/bsp/amebaz/.config +++ b/bsp/amebaz/.config @@ -19,7 +19,7 @@ CONFIG_RT_IDEL_HOOK_LIST_SIZE=4 CONFIG_IDLE_THREAD_STACK_SIZE=256 CONFIG_RT_USING_TIMER_SOFT=y CONFIG_RT_TIMER_THREAD_PRIO=4 -CONFIG_RT_TIMER_THREAD_STACK_SIZE=512 +CONFIG_RT_TIMER_THREAD_STACK_SIZE=1024 CONFIG_RT_DEBUG=y # CONFIG_RT_DEBUG_INIT_CONFIG is not set # CONFIG_RT_DEBUG_THREAD_CONFIG is not set @@ -229,7 +229,10 @@ CONFIG_LWIP_NETIF_LOOPBACK=0 # AT commands # # CONFIG_RT_USING_AT is not set -# CONFIG_LWIP_USING_DHCPD is not set +CONFIG_LWIP_USING_DHCPD=y +CONFIG_DHCPD_SERVER_IP="192.168.169.1" +CONFIG_DHCPD_USING_ROUTER=y +# CONFIG_LWIP_USING_CUSTOMER_DNS_SERVER is not set # # VBUS(Virtual Software BUS) @@ -408,5 +411,10 @@ CONFIG_PKG_REALTEK_AMEBA_VER="latest" # CONFIG_SYS_AUTO_UPDATE_PKGS is not set # CONFIG_SYS_CREATE_MDK_IAR_PROJECT is not set # CONFIG_SYS_PKGS_DOWNLOAD_ACCELERATE is not set + +# +# External Libraries +# +CONFIG_RT_USING_SMARTCONFIG_LIB=y # CONFIG_BSP_USING_UART0 is not set CONFIG_BSP_USING_WIFI=y diff --git a/bsp/amebaz/Kconfig b/bsp/amebaz/Kconfig index f623dcf57f..5e639f4e5f 100644 --- a/bsp/amebaz/Kconfig +++ b/bsp/amebaz/Kconfig @@ -26,6 +26,7 @@ config $ENV_DIR source "$RTT_DIR/Kconfig" source "$PKGS_DIR/Kconfig" source "$ENV_DIR/tools/scripts/cmds/Kconfig" +source "$BSP_DIR/libraries/Kconfig" source "$BSP_DIR/drivers/Kconfig" select PKG_USING_REALTEK_AMEBA diff --git a/bsp/amebaz/README.md b/bsp/amebaz/README.md index 31f0559a3c..5bc1d60426 100644 --- a/bsp/amebaz/README.md +++ b/bsp/amebaz/README.md @@ -1,9 +1,8 @@ # amebaz on RT-Thread -## 1. 简介 +## 1 简介 -amebaz 是由Realtek推出的Cortex-M4内核的WiFi SOC芯片rtl8710b系列 -包括如下硬件特性: +amebaz 是由Realtek推出的Cortex-M4内核的WiFi SOC芯片,属于rtl8710b系列。硬件特性如下: | 硬件 | æè¿° | | -- | -- | @@ -11,8 +10,7 @@ amebaz 是由Realtek推出的Cortex-M4内核的WiFi SOC芯片rtl8710b系列 |CPU| Cortex-M4 | |主频| 125MHz | -## 2. 编译说明 - +## 2 编译说明 | 环境 | 说明 | | ------------ | ------------------------------------------------------------ | @@ -21,15 +19,33 @@ amebaz 是由Realtek推出的Cortex-M4内核的WiFi SOC芯片rtl8710b系列 | 构建工具 | scons | | ä¾èµ–软件环境 | Env工具/(IAR或arm-none-eabi-gcc)/git/调试器驱动 | -1) 下载æºç  +## 3 下载æºç  ```bash git clone https://github.com/RT-Thread/rt-thread.git ``` -2) é…置工程并准备env +## 4 环境准备 -(Linux/Mac) +### 4.1 Windows 环境准备 + +Windows环境下有两ç§å¼€å‘环境,`GCC toolchain` å’Œ `IAR IDE`,根æ®ä¸åŒçš„需求自行选择。 + +#### 4.1.1 IAR å‘开环境 + +IAR å¼€å‘环境需è¦å¼€å‘者自己安装软件,安装过程这里就ä¸ç‰¹åˆ«è¯´æ˜Žäº†ã€‚amebaz工程当å‰ä»…æ”¯æŒ `IAR 7.X` 的版本。 + +#### 4.4.2 GCC å¼€å‘环境 + +GCCå¼€å‘使用 RT-Thread 官方æ供的 env å·¥å…·ï¼Œè¯¥å·¥å…·é›†æˆ GCC 工具链,还具有编译构建环境ã€å›¾å½¢åŒ–系统é…ç½®åŠè½¯ä»¶åŒ…管ç†åŠŸèƒ½ã€‚ + +下载地å€ï¼š[点击下载env工具](https://www.rt-thread.org/page/download.html) + +第一次使用env工具的开å‘者å¯ä»¥åŽ»è¿™é‡ŒæŸ¥çœ‹æ•™ç¨‹ï¼š[RT-Thread env 工具用户手册](https://www.rt-thread.org/document/site/rtthread-development-guide/rtthread-tool-manual/env/env-user-manual/)。 + +### 4.2 Linux/Mac 环境准备 + +Linux/Mac ä»…æ”¯æŒ GCC 工具链。 ```bash cd rt-thread/bsp/amebaz @@ -38,11 +54,17 @@ amebaz 是由Realtek推出的Cortex-M4内核的WiFi SOC芯片rtl8710b系列 pkgs --upgrade ``` -(Windows) +## 5 é…置工程(å¯é€‰ï¼‰ ->在[RT-Thread官网][1]下载ENV工具包,并å‚考官网给出的env使用教程 +### 5.1 Windows é…置工程 -3) é…置工程(å¯é€‰ï¼‰ +é…置工程,需è¦åœ¨ç›¸åº”的工程目录下使用 `menuconfig` 命令打开图形界é¢ï¼Œå¼€å‘者根æ®è‡ªå·±çš„需求开关功能组件。 + +```bash + menuconfig +``` + +### 5.2 Linux/Mac é…置工程 (Linux/Mac) @@ -50,37 +72,44 @@ amebaz 是由Realtek推出的Cortex-M4内核的WiFi SOC芯片rtl8710b系列 scons --menuconfig ``` -(Windows(ENV环境中)) +## 6 更新软件包 -```bash - menuconfig -``` - -4) 下载package - -amebazé…套的驱动库以packageå½¢å¼æ供,故需先下载对应的package(realtek-ameba),请使用env下载package +amebaz é…套的驱动库以 package å½¢å¼æ供,故需先下载对应的 package(realtek-ameba),在工程目录下,使用下é¢å‘½ä»¤ä¸‹è½½è½¯ä»¶åŒ…。 ```bash pkgs --update ``` -*该æ¿çº§æ”¯æŒåŒ…ä¸æ”¯æŒç”Ÿæˆmdk的工程åŠiar工程,åŽç»­ä¼šæ”¯æŒiar工程 +## 7 编译 -5) 编译 +### 7.1 Windows 编译工程 -Windowså¯ä»¥ä½¿ç”¨env编译工程,无需设置GCC工具链路径,直接在bsp/amebaz工程目录下编译å³å¯ã€‚ +#### 7.1.1 IAR 编译工程 -(Linux/Mac arm-none-eabi-gcc) -使用以下指令设置gcc路径 +先打开工程目录下的IAR工程(project.eww),然åŽå•å‡» Project 选项å¡ï¼Œå•å‡» Rebuild All 选项,进行编译 + +![ ](figures/iar_build.png) + +#### 7.1.2 GCC 编译工程 + +å¯ä»¥ä½¿ç”¨env编译工程,无需设置GCC工具链路径,直接在 rt-thread/bsp/amebaz 工程目录下输入 `scons` 编译å³å¯ã€‚编译完æˆåŽï¼Œåœ¨å·¥ç¨‹ç›®å½•ä¸‹ç”Ÿæˆ `image2_all_ota1.bin` 文件。 + +```bash + scons +``` + +### 7.2 Linux/Mac 编译工程 + +如果没有é…ç½®GCC路径的环境å˜é‡ï¼Œåˆ™éœ€è¦ä½¿ç”¨ä»¥ä¸‹æŒ‡ä»¤è®¾ç½®gcc路径。 ```bash export RTT_EXEC_PATH=[GCC路径] ``` -编译(WindowsLinux/Mac arm-none-eabi-gcc) +设置 GCC 路径åŽï¼Œä½¿ç”¨ `scons` 编译工程。 ```bash - scons -j4 + scons ``` 出现下列信æ¯å³ä¸ºç¼–译æˆåŠŸ @@ -109,35 +138,75 @@ Done... scons: done building targets. ``` -如果编译正确无误,会产生image2_all_ota1.bin文件。 +å¦‚æžœç¼–è¯‘æ­£ç¡®æ— è¯¯ï¼Œä¼šåœ¨å·¥ç¨‹ç›®å½•ä¸‹ç”Ÿæˆ image2_all_ota1.bin 文件。 -## 3. 烧写åŠæ‰§è¡Œ +## 8 烧写åŠæ‰§è¡Œ -烧写å¯ä»¥ä½¿ç”¨ä»¿çœŸå™¨ 串å£ç­‰å¤šç§æ–¹å¼ 此处ä¸å†èµ˜è¿° +### 8.1 IAR下载 -### 3.1 è¿è¡Œç»“æžœ +下载程åºåˆ†ä¸ºä¸¤éƒ¨åˆ†ï¼š -如果编译 & 烧写无误,会在专用日志串å£*上看到RT-Threadçš„å¯åŠ¨logoä¿¡æ¯ï¼š +(a)先使用jlink工具正确连接A14(CLK),A15(TMS),GND,VCC引脚 + +(b)打开 IAR 工程并完æˆç¼–译åŽï¼Œå•å‡» Project 选项å¡ä¸‹ Download 选项,选择 Download active application 下载程åºã€‚ + +![IAR下载程åº](figures/iar_download.png) + +(c)短按å¤ä½æŒ‰é’®ï¼Œè¿žæŽ¥ä¸²å£æŸ¥çœ‹è°ƒè¯•ä¿¡æ¯ + +### 8.2 串å£ä¸‹è½½ + +串å£ä¸‹è½½åˆ†ä¸ºä¸‰ä¸ªæ­¥éª¤ + +(a)æ¿å­è¿›å…¥ä¸‹è½½æ¨¡å¼ + +æ¿å­ä½¿ç”¨ `micros usb` 上电,然åŽæŒ‰ä½ `FLASH` é”®ä¸æ”¾æ‰‹ï¼ŒçŸ­æŒ‰ `RST` 键,æ¾å¼€ `RST` å’Œ `FLASH` 键进入下载模å¼ã€‚ + +(b)é…置下载工具 + +打开 Image Tool 下载工具é…置使用,选择 `micros usb` 所对应的串å£ç«¯å£ï¼Œé€‰æ‹©æ³¢ç‰¹çŽ‡ï¼Œé»˜è®¤æ³¢ç‰¹çŽ‡ 1.5Mbps,然åŽæ‰“开串å£ç«¯å£ï¼Œå¦‚下载工具图“①â€æ‰€ç¤º + +![串å£ä¸‹è½½ç¨‹åº](figures/image-tool_v2.2.0.png) + +boot选择工程æ供的 `boot_all.bin`, OTA1 选择生æˆçš„ image2_all_ota1.bin 文件(通常在工程目录下),并且注æ„在这两个选项å‰é¢æ‰“勾确认,其他默认å³å¯ï¼Œå¦‚下载工具图“②â€ã€‚ + +(cï¼‰ä¸‹è½½ç¨‹åº + +按下 Download(如下载工具图 “③â€ï¼‰ï¼Œå³å¯å¼€å§‹ä¸‹è½½ç¨‹åºï¼Œå¹¶ä¸”å¯ä»¥ä»Žæ—¥å¿—窗å£æŸ¥çœ‹åˆ°ä¸‹è½½ä¿¡æ¯ã€‚ + +## 9 è¿è¡Œ + +下载程åºåŽï¼Œè¿žæŽ¥ä¸²å£ï¼ˆé»˜è®¤ä½¿ç”¨æ¿å­ä¸Š `micro usb`),打开串å£å·¥å…·ï¼Œé…置串å£æ³¢ç‰¹çŽ‡ 115200,数æ®ä½ 8 ä½ï¼Œåœæ­¢ä½ 1 ä½ï¼Œæ— æ ¡éªŒï¼Œæ— æµæŽ§ï¼›çŸ­æŒ‰ `RST` é”®å¤ä½ï¼Œä¸²å£å°†è¾“出调试信æ¯ï¼Œå¦‚下所示: ```bash \ | / - RT - Thread Operating System - / | \ 3.0.4 build May 15 2018 + / | \ 3.1.1 build Oct 25 2018 2006 - 2018 Copyright by rt-thread team -msh /> +lwIP-2.0.2 initialized! + +Initializing WIFI ... +LDO Mode, BD_Info: 0 + +LDO Mode, BD_Info: 0 + +WIFI initialized +[I/WIFI] amebaz_wifi_start success +build time: Oct 25 2018 10:52:02 +Hello RT-Thread! +[I/WLAN.dev] wlan init success +[I/WLAN.lwip] eth device init ok name:w0 +msh > ``` -*é»˜è®¤ä¸²å£ +## 10 WIFI简å•ä½¿ç”¨ -## 4. WIFI简å•ä½¿ç”¨ - - -### 4.1 wifi扫æ命令 +### wifi扫æ命令 wifi 扫æ命令格å¼å¦‚下 -```unknown - wifi scan +```bash + wifi scan ``` 命令说明 @@ -149,8 +218,7 @@ wifi 扫æ命令格å¼å¦‚下 在调试工具中输入该命令,å³å¯è¿›è¡Œ wifi 命令扫æ,调试信æ¯å¦‚下 -```unknown - +```bash scan ap down SSID MAC security rssi chn Mbps ------------------------------- ----------------- -------------- ---- --- ---- @@ -159,19 +227,16 @@ WQ1 88:25:93:94:51:54 WPA2_AES_PSK -76 13 shyc1 a0:40:a0:a3:e8:c9 WPA2_AES_PSK -77 13 0 KVIP 70:65:82:3b:71:43 WPA2_AES_PSK -83 11 0 YST2016 88:25:93:c6:67:d1 WPA2_TKIP_PSK -84 4 0 - ``` -> 注: -> -> 测试命令有关 wifi,å‡ä»¥wifi开头。 +> 注:wifi 有关的命令,å‡ä»¥wifi开头。 -### 4.2 wifi 接入 +### wifi 接入 接入 wifi 之å‰ï¼Œå…ˆä»‹ç»ä¸€ä¸‹å…¶æŽ¥å…¥çš„命令 ,如下 -```unknown - wifi join ssid 123456789 +```bash + wifi join ssid 123456789 ``` 命令说明 @@ -185,7 +250,7 @@ YST2016 88:25:93:c6:67:d1 WPA2_TKIP_PSK -84 4 了解上述命令,并且æˆåŠŸå®Œæˆå‰é¢æ­¥éª¤ï¼Œåœ¨ä¸²å£ä¸­è¾“å…¥ `wifi w0 join realthread_VIP 123456789` ,如下日志表示连接æˆåŠŸ -```unknown +```bash WIFI wlan0 Setting: ============================== @@ -200,8 +265,7 @@ WIFI wlan0 Setting: å¦å¤–,æ供一个简å•çš„测试使用命令,查询设备IP地å€å‘½ä»¤ï¼šifconfig。 -```unknown - +```bash network interface: w0 (Default) MTU: 1500 MAC: 00 e0 4c d5 ac 46 @@ -211,21 +275,16 @@ gw address: 172.16.200.1 net mask : 255.255.255.0 dns server #0: 172.16.200.1 dns server #1: 223.5.5.5 - ``` -## 5. 驱动支æŒæƒ…况åŠè®¡åˆ’ +## 驱动支æŒæƒ…况åŠè®¡åˆ’ | 驱动 | 支æŒæƒ…况 | 备注 | | ---------- | :------: | :--------------------------: | | UART | æ”¯æŒ | UART0 | | WLAN | éƒ¨åˆ†æ”¯æŒ | 仅支æŒSTAæ¨¡å¼ | -## 6. 已知问题 - -wlan仅支æŒSTA模å¼ï¼Œè¿žæŽ¥WIFI输入错误密ç æ—¶ï¼Œä¼šå®•æœºã€‚ - -## 7. è”ç³»äººä¿¡æ¯ +## è”ç³»äººä¿¡æ¯ ç»´æŠ¤äºº: [flyingcys][4] < [flyingcys@163.com][5] > diff --git a/bsp/amebaz/applications/smartconfig_app.c b/bsp/amebaz/applications/smartconfig_app.c new file mode 100644 index 0000000000..4302fe7937 --- /dev/null +++ b/bsp/amebaz/applications/smartconfig_app.c @@ -0,0 +1,146 @@ +/* + * File : smartconfig_demo.c + * This file is part of RT-Thread RTOS + * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Change Logs: + * Date Author Notes + * 2018-09-13 Bernard the first version + */ +#include +#include + +#ifdef RT_USING_SMARTCONFIG_LIB + +#include +#include "smartconfig.h" + +#define NET_READY_TIME_OUT (rt_tick_from_millisecond(30 * 1000)) + +static int rt_wlan_device_connetct(char *ssid, char *passwd) +{ + int result = RT_EOK; + rt_uint8_t time_cnt = 0; + + result = rt_wlan_connect(ssid, passwd); + if (result != RT_EOK) + { + rt_kprintf("\nconnect ssid %s error:%d!\n", ssid, result); + return result; + }; + + do + { + rt_thread_mdelay(1000); + time_cnt ++; + if (rt_wlan_is_ready()) + { + break; + } + } + while (time_cnt <= (NET_READY_TIME_OUT / 1000)); + + if (time_cnt <= (NET_READY_TIME_OUT / 1000)) + { + rt_kprintf("networking ready!\n"); + } + else + { + rt_kprintf("wait ip got timeout!\n"); + result = -RT_ETIMEOUT; + } + + return result; +} + +static void airkiss_send_notification(uint8_t random) +{ + int sock = -1; + int udpbufsize = 2; + struct sockaddr_in UDPBCAddr, UDPBCServerAddr; + + sock = socket(AF_INET, SOCK_DGRAM, 0); + if (sock < 0) + { + rt_kprintf("notify create socket error!\n"); + goto _exit; + } + + UDPBCAddr.sin_family = AF_INET; + UDPBCAddr.sin_port = htons(10000); + UDPBCAddr.sin_addr.s_addr = htonl(0xffffffff); + rt_memset(&(UDPBCAddr.sin_zero), 0, sizeof(UDPBCAddr.sin_zero)); + + UDPBCServerAddr.sin_family = AF_INET; + UDPBCServerAddr.sin_port = htons(10000); + UDPBCServerAddr.sin_addr.s_addr = htonl(INADDR_ANY); + rt_memset(&(UDPBCServerAddr.sin_zero), 0, sizeof(UDPBCServerAddr.sin_zero)); + + if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &udpbufsize, sizeof(int)) != 0) + { + rt_kprintf("notify socket setsockopt error\n"); + goto _exit; + } + + if (bind(sock, (struct sockaddr *)&UDPBCServerAddr, sizeof(UDPBCServerAddr)) != 0) + { + rt_kprintf("notify socket bind error\n"); + goto _exit; + } + + for (int i = 0; i <= 20; i++) + { + int ret = sendto(sock, (char *)&random, 1, 0, (struct sockaddr *)&UDPBCAddr, sizeof(UDPBCAddr)); + rt_thread_delay(10); + } + + rt_kprintf("airkiss notification thread exit!\n"); + +_exit: + if (sock >= 0) + { + closesocket(sock); + } +} + +static int smartconfig_result(rt_smartconfig_type result_type, char *ssid, char *passwd, void *userdata, rt_uint8_t userdata_len) +{ + rt_uint8_t random = *(rt_uint8_t *)userdata; + + rt_kprintf("type:%d\n", result_type); + rt_kprintf("ssid:%s\n", ssid); + rt_kprintf("passwd:%s\n", passwd); + rt_kprintf("user_data:0x%02x\n", random); + if (rt_wlan_device_connetct(ssid, passwd) == RT_EOK) + { + airkiss_send_notification(random); + } + + return 0; +} + +void smartconfig_demo(void) +{ + rt_smartconfig_start(SMARTCONFIG_TYPE_AIRKISS, SMARTCONFIG_ENCRYPT_NONE, RT_NULL, smartconfig_result); +} + +#ifdef RT_USING_FINSH +#include "finsh.h" +MSH_CMD_EXPORT(smartconfig_demo, smartconfig demo); +#endif + +#endif diff --git a/bsp/amebaz/drivers/board.c b/bsp/amebaz/drivers/board.c index f343c31d5b..ffdc9fc680 100644 --- a/bsp/amebaz/drivers/board.c +++ b/bsp/amebaz/drivers/board.c @@ -12,10 +12,8 @@ * 2009-01-05 Bernard first implementation * 2018-03-15 flyingcys add amebaz */ +#include #include -#include -#include - #include "board.h" #include "drv_uart.h" @@ -87,7 +85,7 @@ void rt_hw_board_init(void) { extern uint32_t SystemCoreClock; SysTick_Config(SystemCoreClock/RT_TICK_PER_SECOND); - + #ifdef RT_USING_HEAP rt_system_heap_init((void*)HEAP_BEGIN, (void*)HEAP_END); #endif diff --git a/bsp/amebaz/drivers/board.h b/bsp/amebaz/drivers/board.h index aa915a67cf..3baf67a4d5 100644 --- a/bsp/amebaz/drivers/board.h +++ b/bsp/amebaz/drivers/board.h @@ -17,7 +17,17 @@ #ifndef __BOARD_H__ #define __BOARD_H__ -#include "rtl8710b.h" +#ifdef _LITTLE_ENDIAN +#undef _LITTLE_ENDIAN +#endif + +#ifdef SECTION +#undef SECTION +#endif + +#include +#include +#include void rt_hw_board_init(void); diff --git a/bsp/amebaz/drivers/drv_uart.c b/bsp/amebaz/drivers/drv_uart.c index a9b58694b1..1bf659e79f 100644 --- a/bsp/amebaz/drivers/drv_uart.c +++ b/bsp/amebaz/drivers/drv_uart.c @@ -22,11 +22,8 @@ * 2017-05-30 Bernard the first version * 2018-03-15 flyingcys add amebaz */ - -#include -#include -#include - +#include +#include #include "board.h" #include "drv_uart.h" @@ -37,6 +34,8 @@ struct device_uart rt_uint32_t irqno; }; +extern int LOGUART_SetBaud(u32 BaudRate); + #ifdef BSP_USING_UART0 static struct rt_serial_device serial0; static struct device_uart uart0; @@ -64,7 +63,6 @@ const struct rt_uart_ops _uart_ops = */ static rt_err_t ameba_uart_configure (struct rt_serial_device *serial, struct serial_configure *cfg) { - rt_uint32_t baud_div; struct device_uart * uart; RT_ASSERT(serial != RT_NULL); diff --git a/bsp/amebaz/drivers/drv_uart.h b/bsp/amebaz/drivers/drv_uart.h index 8d2f1b6db5..a4d326da58 100644 --- a/bsp/amebaz/drivers/drv_uart.h +++ b/bsp/amebaz/drivers/drv_uart.h @@ -26,9 +26,6 @@ #ifndef __DRV_UART_H__ #define __DRV_UART_H__ -#include "ameba_soc.h" -#include "serial_api.h" - #if defined(CONFIG_PLATFORM_8711B) // 8710B #define UART_TX PA_23 diff --git a/bsp/amebaz/drivers/wlan/drv_wifi.c b/bsp/amebaz/drivers/wlan/drv_wifi.c index d4ab7e9a96..67a870b034 100644 --- a/bsp/amebaz/drivers/wlan/drv_wifi.c +++ b/bsp/amebaz/drivers/wlan/drv_wifi.c @@ -25,8 +25,6 @@ #include #include "board.h" #include -#include -#include #include "drv_wlan.h" #include "drv_wifi.h" @@ -153,8 +151,11 @@ static void rtw_connect_callbackfn(char *buf, int len, int flags, void *user_dat struct ameba_wifi *wifi = user_data; LOG_D("L:%d wifi connect callback flags:%d user_data:%08x", __LINE__, flags, user_data); - wifi->connected = 1; - rt_wlan_dev_indicate_event_handle(wifi->wlan, RT_WLAN_DEV_EVT_CONNECT, RT_NULL); + if( wifi_is_connected_to_ap() == 0) + { + wifi->connected = 1; + rt_wlan_dev_indicate_event_handle(wifi->wlan, RT_WLAN_DEV_EVT_CONNECT, RT_NULL); + } } static void rtw_connect_fail_callbackfn(char *buf, int len, int flags, void *user_data) @@ -371,7 +372,7 @@ static rt_err_t rthw_wlan_join (struct rt_wlan_device *wlan, str ssid = &sta_info->ssid.val[0]; if (sta_info->key.len > 0) key = &sta_info->key.val[0]; - LOG_D("bssid connect bssid: %02x:%02x:%02x:%02x:%02x:%02x ssid:%s ssid_len:%d key:%s key_len%d", + LOG_D("bssid connect bssid: %02x:%02x:%02x:%02x:%02x:%02x ssid:%s ssid_len:%d key:%s key_len%d", sta_info->bssid[0],sta_info->bssid[1],sta_info->bssid[2],sta_info->bssid[3],sta_info->bssid[4],sta_info->bssid[5], ssid, sta_info->ssid.len, @@ -649,11 +650,8 @@ int rthw_wifi_low_init(void) LOG_I("amebaz_wifi_start success"); LOG_D("F:%s L:%d wifi_sta:0x%08x wifi_ap:0x%08x", __FUNCTION__, __LINE__, &wifi_sta, &wifi_ap); - wifi_reg_event_handler(0, rtw_connect_callbackfn, &wifi_sta); - wifi_reg_event_handler(1, rtw_disconnect_callbackfn, &wifi_sta); - - wifi_reg_event_handler(8, rtw_sta_assoc_callbackfn, &wifi_ap); - wifi_reg_event_handler(9, rtw_sta_disassoc_callbackfn, &wifi_ap); + wifi_reg_event_handler(RTHW_WIFI_EVENT_FOURWAY_HANDSHAKE_DONE, rtw_connect_callbackfn, &wifi_sta); + wifi_reg_event_handler(RTHW_WIFI_EVENT_DISCONNECT, rtw_disconnect_callbackfn, &wifi_sta); _init_flag = 1; diff --git a/bsp/amebaz/drivers/wlan/drv_wlan.c b/bsp/amebaz/drivers/wlan/drv_wlan.c index f6bb30de9a..c414470633 100644 --- a/bsp/amebaz/drivers/wlan/drv_wlan.c +++ b/bsp/amebaz/drivers/wlan/drv_wlan.c @@ -26,15 +26,7 @@ #include "wifi_constants.h" #include #include - -#ifdef _LITTLE_ENDIAN -#undef _LITTLE_ENDIAN -#endif - -#include -#include -#include -#include +#include "board.h" #include "drv_wlan.h" // #define SCAN_WAIT_TIME (10000) @@ -349,7 +341,7 @@ static void rthw_wifi_promisc_callback(unsigned char *buf, unsigned int len, voi { if (monitor_callback) { - monitor_callback(buf, len, RT_NULL); + monitor_callback(userdata, len, RT_NULL); } } @@ -372,4 +364,3 @@ void rthw_wifi_monitor_enable(int enable) rthw_wifi_stop(); } } - diff --git a/bsp/amebaz/drivers/wlan/drv_wlan.h b/bsp/amebaz/drivers/wlan/drv_wlan.h index ca9ae09798..03a8db01e8 100644 --- a/bsp/amebaz/drivers/wlan/drv_wlan.h +++ b/bsp/amebaz/drivers/wlan/drv_wlan.h @@ -25,8 +25,6 @@ #ifndef __DRV_WLAN_H__ #define __DRV_WLAN_H__ -#include - typedef enum { RTHW_MODE_NONE = 0, @@ -65,6 +63,26 @@ typedef enum { RTHW_SECURITY_FORCE_32_BIT = 0x7fffffff /**< Exists only to force rtw_security_t type to 32 bits */ } rthw_security_t; +typedef enum { + RTHW_WIFI_EVENT_CONNECT = 0, + RTHW_WIFI_EVENT_DISCONNECT = 1, + RTHW_WIFI_EVENT_FOURWAY_HANDSHAKE_DONE = 2, + RTHW_WIFI_EVENT_SCAN_RESULT_REPORT = 3, + RTHW_WIFI_EVENT_SCAN_DONE = 4, + RTHW_WIFI_EVENT_RECONNECTION_FAIL = 5, + RTHW_WIFI_EVENT_SEND_ACTION_DONE = 6, + RTHW_WIFI_EVENT_RX_MGNT = 7, + RTHW_WIFI_EVENT_STA_ASSOC = 8, + RTHW_WIFI_EVENT_STA_DISASSOC = 9, + RTHW_WIFI_EVENT_STA_WPS_START = 10, + RTHW_WIFI_EVENT_WPS_FINISH = 11, + RTHW_WIFI_EVENT_EAPOL_START = 12, + RTHW_WIFI_EVENT_EAPOL_RECVD = 13, + RTHW_WIFI_EVENT_NO_NETWORK = 14, + RTHW_WIFI_EVENT_BEACON_AFTER_DHCP = 15, + RTHW_WIFI_EVENT_MAX, +}rthw_event_indicate_t; + typedef enum { RTHW_802_11_BAND_5GHZ = 0, /**< Denotes 5GHz radio band */ RTHW_802_11_BAND_2_4GHZ = 1 /**< Denotes 2.4GHz radio band */ @@ -72,13 +90,13 @@ typedef enum { struct rthw_wlan_info { - char *ssid; + char *ssid; rt_uint8_t *bssid; rthw_802_11_band_t band; rt_uint32_t datarate; rt_uint16_t channel; rt_int16_t rssi; - rthw_security_t security; + rthw_security_t security; }; typedef void (*scan_callback_fn)(struct rthw_wlan_info *info, void *user_data); diff --git a/bsp/amebaz/figures/iar_build.png b/bsp/amebaz/figures/iar_build.png new file mode 100644 index 0000000000000000000000000000000000000000..ee373d785c56fc4618a90a14bb02838f09e877d3 GIT binary patch literal 17065 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%0D>#IeVK+ns*dp z#_n~ycI_G&dWmlf0DD?OOXK`&4UUb*(T)OH8JT^w^7&H}OAw|Tz6#)1Z(l)v{veXA zbc_AthYPzsKv?rQxVDv}JVzpE@K&vf*Nwb{H*fa->?tiSbZy-WaGeg!o%Fowf{dg) z4ylnd#Rz*XuM;?kC~pwOT;r#MX8&+^M{$kW5Op?krt2fQ;o2)nj^h%fVy`~W%pY(k zcX}rT+P?%zn%R|~7DG%t&5B z82kQ6QFc73HTJ^C9jNDj>b$NpG1krX#~G#AdC+&n*?7J_Q1NTot*s+3>I*VF4OA`f zi6PFA7Y)qQx1PWN>U!21VCiH)*4f{@R-G^}51yk=@LoD!3AgFa`4ZosTL1%A|6pk3 z5Z`(?57&sEDuy$<7;PoiNYy7X0V4TB zZy=A6*wjLZi_Y=_SdV>!^8WSTP=%PIfimd(kc1$h$W=cEIkyDBrm%?!?9O6O!+N$K z*l0_(y8yaEr;CERSm`+&6J`#Id?1`QlHS?gV9|UOU6us_DYZ?9x<`=0n8jCpf$I_i z415dF&4yl38BJT2P~Am6)Q*>k|Lrni%6go>Z1Agm!D8@g^yn?wlVA8hR-8Dwb+d_o zzDvXDW1NYhXEtm(bvfTF?1Gc!wUhC}*Ba+DoqoMoNY!fddeSjI-2CqQ%IZq#LbI3F z_w&u~%EJ0)w7#!`wb8G|%qG5v%^3;M&T4}$f3$p|*Tlv}l5KfmVglgbkMnHlWXZsm zgi)1?XBlG3=u?f_KoJHgi3SbhLIm*5Gpf0nx;9^UCquB&{jfwO_#m9BWV) z*%oa~G1>SGM$+J$j150`@g2g@Ai<^x;$lm~h+euOSqg3s4R46=cSQGBq3=fEnRcR6 z#xoRY%3z3zo|Cqi7CG7Y3P+PQxB7nY@AU}U9#_r^zS8eK#~Rk99k^V>#uSI? zUpZaC%KVHf3fE=D#)wu|u~i(?y)Rz9RWT}G)ZgVJ|BHU>Rp^=B0T2RGv-l}K{@pg~ zBOyzJ8VGQcwqum$$eu#sFS?9$B&jJN7aQe=0a zBt<;7$(e)#N^;gfs($sj3#Q%0Vbj9Y*t_!8!CYvpOE@mVP?%>I^6rynzJDl&Z{K4j z$8!PW$L8M}d)1pwpmtKk(IvB|{&XE)7{B`dR~l<1FmJoSY0_oEILvV(r*ZgxPO>V! zsCdFc(2(gpC&_HZ#uilT`1zPx@N-_?``PVt@x{=U&fzhi^X6!|1(dZu>M6LrWuD|V z9Qm5K^~A=BE;bdkQgeUzqMiIEI(qtJt`hZo{HQ#7QElg8we?pYKd7JHp~cnyW|t_* zC~@;Bs}W1xoo<72g~?*a%;bh1>n>_+FOGH`$65v1na%s-{lnETVnjHwA4C&cU12(4 zYhMGg_QjjHA0;_Y;5&7jd{R%5_%=~Cj=h54o2+ajTo8;}=)bt=fDVdiuwbMWVQZN%+jQu9hoiSE6*2$(MUdo~uX0 zD$YJ!KJ<4*k1NJ~W|eHQ6JqIzXA`FgGz`=I$5-wb2|MJFx+5v7@w;89c~Zv~7+PBR z;_qEUZ;#{SByXdqpH;RgE`WRY7PNK>N`*Ui2{tK6Q{G1(p=tkpdn(-L*Y}AQkt5UV z=)!a-T+Sght5arQtXq9fz=d!(PhZE+d;dP!kEnw6cwD|H>AP~VpC}WfDJ@_462lDn zQS|)bKdS{kH8oLctqRX7f^kxWz?(o6o2I|CL6#d?Aue;W@XNi#zUWj^LjP`TMc7J^4kM zrd5ge3M9qu59Lk2{GQ#6EZDyn?aTJK_bly&?{SA6o0!B}ACEJh?qmfRU zx5Z9Lo46zCx*foP4*5THFk521SyLMRFn;{EMczpPG08maNvG?8Ei(02C-=Gamc70g z^euJhl&)}R<=hvW+`PP&b_a`FHk>U_5WRl3pc_{K+2(;=8@s>GOx1^rkubnT3=(E8 zT;vp(~ahRnC$VzF_)cl@&6vk8S95^*dpxx8nxNYFh5G%Mz zxtOk63&&w70jNP#A?N0JR;6 z<=WqO(+-FIuX~ew9@3crI8OL4HrAx*T_`Gt_!ZC6-jHiZ&SAT3^F&hZ&GQXA7oqa% zE-H7=tg@&!Nm9BxK3?m*fuY*9dKdu3F(u11Ixx)LN4${u9PcA-FaK-`ITq43Rj-2J z>n|k7&CuVR!{NSJ2#FXhURuRi221H2d^xdpHtU`<+1|5a$+@`e#YTjD=<4uUC<)P9yzFKLjw`<9w* zkQ!aiE1|uPq;7En4@)=h11DL7?jV#RIz`XF>9(E~>~JwcvAPeWCq;yo#pZ_ zr5|;B^LyCY^`BIRLD)?Zl+Im#Oj{2)VFF&jVc9!(PunjaI`6hTsl0tBN>U8MDpnkv z`r()ksrTpv_=mHd2S0UC*vruS)DZDTiUBlb zOnXy(9KIt#0WWI2oXofU8C)gnJ&Z2?0)+zPv^miXKB|T;Ry0n`Ixeg4>C22=%=Bt8 zTDL41dfm>Alp}U&BD-pD+lL^|Cp{K9R_jBrYM%(eaMgo-V9cMQ14E+IEWo^>xg70f zl>hS6Exf^LnQM^dQ|)5+lUaEEg^b6MF2#X6$CBIjzQ?gDiKo+eO~4c@zT{7QapIFKdM7fiIzJ z``EG^CRtUUKZLG;i-jymeQK~UQ^dh=f|G0e1P+DH?v4%|yk(RF`~dA3Ld=XF*-r z1%9aVm1Kk(>;_W9W2iBacJGHwp=^tGz&HuX;VRW*96Xb$ zI+J(l^sI6O{wXre`DZ|fQ}XK)b}9d-SUZ!xtPdd4@3|NK>e2#RD|7@4d3y{V^1@V! zLg*Mfdon6Y?5Z%|cVzv3n6XeH4B8GyB@W%RS5WuO-Sa5ws6G3>dTR*>N&Tm{wjq=l zq!ZG2tLD0#+}t}YZ^gK=kuqLSJz9N7mn-08RXT1k2Ibb+^2mz-YuyU|rFh&^s-bkT zQLLoO1w22$>?=++^tF|mNX1mGsHAXq77t}IRV@=|HOLj*o@Z|uH4Ta$ZxlWgf)1D| zmoR~-WNI)pKN9u)48p$RpJlK1WTUM25z2@-6m}H##**ZHITE{57Hfi{5wGCio9eIo znv3~VYE$e9Gdfg}h8e4x;Vm1v?h*QDcXWp{x_&1oucb@v=jksiWi) z6e)afNJ|x}u%3bqVzk3J>;6V6js+GGKc{=@E;n^9D{1k`F*Y6Bkd0y;5|h1ilr5!y z?vXMcqQ8{Zxqg+({82#E=2Ib8x5idPJSmjj^X-nlsm;f%-5Et&QHL{Aiyr;HHT9&j z7S95mVRYx^ji*zNe%Wt*6a0Cnu*2%%^Hs-!&&lXV;^3plBhYSQ%nHFd}1_Xo_qbdrJJ- zf$MjJkzN(Oj@8ItA{D$%%*5jPPS&CM$tW?;D@UGgkr}NLqRWb{LR+Er1C!TwK%0W2 z>0Zi2ckJP#f!;l!!{WuBvsFS8;iRbH*P0!~H<60k@qUI_x%G(~=^u}f*TQ|IwOr3O z2$Il82oGl?11XR1E$XDYF%qLiGt6bhbV8SX@wAXh9!Nl{ng9gkhvC+c%qmD!8ELGo zW_RK-JPAkL#PJ)vN`u_N~Z*>i!xP2J&`GL z))miD66&7^bKFsu`6-Akuj#=KU9%((3eEvi;D)J*Icn7Y=pHl^3?KB(wo>FRt@YF^UHw<;a;!@+5?$-?{oHH>9tCu)uR z$Go-EnN;AfO0I^LsS5r%xkHXgU#NQZ3d`JXg?l%VW={UV+fWdrC@NcVGF(%xOYISF z;MCBeMf(d;Hd8iV!(}5m1PLTPP;Gt}AYVz_Y**3F5v8w{tm+Zszo^`Hm=OeQY|nPKv~<;^nsm6IJv3C!3aIwrcE&K>-hM22D6DfAV2zr#iI2c3yJ$WJI#8xxZQ{qqTpFmU%rYx{*6lJKGqhSmv9u1N+zC>ynP%e zjQ3iP=3PQfC)|t(O}y$#zTdDjelvSf=$WBq*TzBlWlkqn24A0L5S?hGv_XGzm%2Tt zgf(BPG}pTiv*#I!c=n9&$2UX8bi0TJ z5zTe^?{s&zSpJ+KadELFY(8s*>G>(cHnBZthi;j-r<$w4&IhXU|En1_BS+i`H1#*4 zmYSQN9zRL`(A(Xn9nkPFMlp}E@dY2TAq>4-*?$Xr8mnX$2LIJvgV(I~G(@cy?v>ymi8IQl&tS~lDK%)x#=MY4 zI|nl5^Chx&i)BMEHfL&2=(Annl0U{RpRAKKIWts+HKYA$b>dVxVVb69?IGAL zZjj;DjCE|@_I)G$n~#xGk`9Bx9aeb?Wv$J4xZBP3TfX6Q8&3t+n0(;fhD!xL;r}#D z?{1vi(YgPtjLn0NTP~Ye+82HfyVfS|KX~leeZ6gz_esw0%F?)pR@}E)H%#}^G-l#| zf+Am^(=K7NV$7IP%PIX$BhTTXC1+u*d1wZ?r<1*3snPWfW(A!{1qF)FKOqnFpLPct z&s^e{$dQXLf@+;-I+h^4|NyuZC?ZD?&Zy{CPY+-Ih`kYQawVXRF|L+S1?_)YRX@~C?`$#gklSx$;-@TRd z4ptvIQLDkX^76UT|GzLC^BP5q`Gr@f*_MdgUl*>k##tQ5!BlA`noIKq)1Uw6J!6on zuWvENErpbO$o|&hlA)6V^lzpMClCDlz0lk9j)dp1GcznY1U03v>_29I|8T`zp##;e zv_9#@Hs3HjM_pHN+$a9rN|yv$t~b-W5XbLxY=sgYCP+?arf% zt}7qOOED-51!`1B&y)xi{Xl0)|d>XcV>B|LT>l+ zBZZ}Fc=u(5{d(QC{aP(dihJ4h=2M;XU5{@?qq91jrvm)hgNG6=M*(v7EA@HYd1&Xa zd)WO2GoN6Po7LIAlb>$n5+R$l=y>9-F=B^yl0n z<;&wK_Rg>lutUpItyA?CC&@V(wGpEM5rH7CBcX@oDzqMfV`lhIQ?U>sy zfC#N4*?GFtf4ZwS963Q=q&}9;L(|+jOoYE+6~5>FFi<0rDDNW|-UXXO>)|8X{WZd^ z$ZZbB@QB#FKOXQeJOqZ1O2*v2`DmUjm#e*6c0$JNG|={V7p9ZnqL|Q~o-NnM(c|rL z7h`qC=|4uu0v)QhtUJFvC9 zGArgWyCuyVP-mT3<$Y87d8#4s_tri>ol&*w4B=!1;0H$3vH*vFaBmuU^FB9qi@EszL5Up~Bkd$aIJbS&Jqc0@mR z0_q@o6%ADNDV54F2P$ygL1ExW&b|wsR53u#?&^jjBx!;63k)(Z;n43xEZ%>*O7%PD z72r$Ffx^DXf9w<(W$)-%ZvN-d$}AIt+v?==W%i1>^jGiD{v!3`fusidvb=o#1xk;@ zb!Blu^c|GrS#=tt4dhM(x-{aQSQz5g31Ob&#FqeA@M;b6e=nG$TtD0o&XOX;j2_+w zZM_|W?<11r=J82rr#gWi7@v2~ddJvi{Z-(|?kdAr$uZCBIiM3h6$;QMod6N3Znoqc zWyeaxQoP3#xD|5A9YCdWa7B`h^sMQK&e)(Ge@ex-J8t5$go7U7cpl#bJ6C*$fr$DhG^+{*>-5_tmkikIgG${UC~D8+l0(MA zD78BSp>mT3GXT|`Dsunn>#{-eXg3VIv}{I1RS0;lTecs1ba6FDlly%!5;|WzOMc2B z;m|Rf7XRBR<-H)S7to}9ud+Ig{2Pi11#GnSv2NPgC{askepf&Po?~~iK2*CM%*8-g z{^Hi*7`&x4x7k)ojb1}@e3eXZ$jss7Jvb}y(T&KZpbwK3U-Pn-p%b%$IDJ|_ zqtG`#RK#fWiSKSfOYeX>R|gi1BO|d={pA=k)^4?toEUCO7_jkpl^AJGOmRb}=QvZ- ze@1Yeg%5m$9!F4qtTRSRU33hv61q>D*AIN4Won_3_4jwF12+!@3=fUSz;FFLhZMxH z@!x)h>ENMdk5!A#C<}7F=2>?QPYWbN8VSwp7z-0}>-JZM|-i`1cRKcfexM^{cb=_QR4!dR4`>Ab!&h+?gipmt7 zMpS+)YoI;zNk3x8_F;?lp{VGoV}#k}IMrW9ga8PSzH95-dY}mGN+lY0qMgp|ceo`w zI((~Ibb9NMnSivi=|egY7~iv+~A|SXwgo zc#8Dlt0$?7sZO0y+K31do|>K65S4%pASN&0M_XVCH17WM+$BD?8FOrlFS#CF2d4Lf z-a3A$p34d}C}Bz)+tKy(3mKk3HuOYd^euBlW?yot&>3e2Gy3&!By02I+{9F$l3T@^_FHHVIrZ6a2k=01fR;bD6q{q0;M=Guf z_sLW@v$deR7a3d}Y5cIp%VrD-m);*$L#LojO|JyQKAa14EIk(`T&KhPcCNe9(5pzr zryj>FvH~z4Ni9Z3W<=1FAe$XkYl<76w(%fOql-FrpJc%?ZMT zi}iN}8k!xp84H1x%D0Fuq5(P|5A-TLg{r~Y(ue#tZS%TC5^k>>ZkW(tyf7IcDM>wo z+9Wbp<;+Juh7O6EjVrXcs|em`^*hSVLJF|eRnVK^%RKM5J);NGjK=Dc1Mu1f48?$@=uxicAR?R z>(dMS=eSg&aV_fJCjUDFq@@J;>CUg~G^Dhj{iirHMhn)Trg%u$@|uWR&N=;kJpMf1 zgHVlOXgkgAD~>cbMqYfb@W1i}{#Duqm;_5d=l{N(j%kE(Pj?1vNuLw`us_Jk@Hr5^ zietuEPwXpvPNeygKkxgu>Z}jN`EbCTWVdM#7pr6yqxJ_i*K?%>IWIqFKKEK%o_}TD zrBQfHO2vx#K#Pqw`eqhZ5WVDO(l#B@TjhbO~;Kn;2JEsfiD8NM1G0;n~}VVVK~0NpPsQP zOB&(vo8mO54s{?QJ^^N$Zgv6m{d>Z=#w%(qN=FYF=3(!gX^iP%uKL%eT3nKt49rLh zIMZCHt9=CdMMu|j4sN684=d`p3=wM+*~u<){wKB|<7|uVe#03(AT2Dt1_yRevXi`^ z&xJ00z;(>m)1h&^;oYtK)4zk8L}uSU!AZ$+AK9`24~IxC;*+GUViw7u*%BnHV?TKb4;gq6B#5+WO`yk~2~qs<={vrIG!p*7M2R)O9Y*j~22Ju%aZ_@hVh# zPGK^$V_i%{6zPMv^tE%dC470!NmDJGjKI<%5-o2@r1D%5{ch{LlEvAa%vttoo1*##xl`|f0= zl~(LAvUTXB`h{)-0A_h99Qm)T*8Sb;x9dx?(H`@^*pQ(>$$fj{;R9fJ<7PMqG4$ma z#Ut-FdcIeWb<2+#fi)#QRt80|H!B!~%Ljf(E%07P@E|vk4Bxi}88|#xbqCJigWX_c zmJ+2L_EFo~1yEGv!~S#Ng&!aorAk?`Aag0rp{PMNfy2XhxBI)#f4C6@RIsO~@h2ky z4F4dI6}_P3FEQwYL#v2+`oiPT>UeM5$EmF_U!hG7=-Bhk2;(x!MqB~&-}=y8I0BA+ zPzXann=!B_9t<*IB-)cD#jk+nQKL3~54-pZW(P=}yL_6IA2MYedn?1jT-pMG(Cz7K zby}YN+3HB22dR5pQL{J&K)#au=cEw60+ju_%NO9m>Bcs}+zH#D*2~lE1K=cxS$%f333o?(Y%Cymb^{%xlf zvPjvt%Nj=*_R%&55Lo;Kk#%RN$v#n#G}Yz-AbU~Bl8;+oML9CQ`Y}86*@-Oebyew; z;A$}HQy^~1oCVl>w;JjJ-5_p1ij#;Es6&zR8PGXYV4s1A#~M*8P*^5T^f^#io=>P; zB;Xsb!r|Gy6tFhY(3?e7Ji2a?vbO!ilXfVDzst3w)QS8Fwx|n@U(sos!-(hlLKpm! z4Fd>X&oC6HH#ZifVOvT50(mTWb7Y{$%odQswb(}ZpeB%#57bs&h=gA2M~%@k9B5rY zI(Z_-_qG^+>?i8x94Xgy6@ut>My%qfYX{McKeWQ9s_l$P{QvCPXyn2-Ti`s zf^@gGjjiDfpYt$D`gMk09#~I*)nWw&HlMAA;mDoVF87>}^q5Z3-wL7YJwO#wXs}7i zrsy55V)@(xqxuI2pDRP1&lbba!`8};SsvFf19l`v8WZv;h90T_H`wPjX;oGFAUF7#=v zg8se~UQ(o_W#i#_5s_^V8^T)CLH^yak$Y1jZFp_RVs4sSEP(qjqr@$J>+JHEmIQ$Ymnm zwql2ws!mqgfcW>H&%6%=v1fe>VIbMbICUkyW9F9`;Sq|DdcAlOcG~O0T$x+dla(eN zMf*Nt{AK-aHq(~%acs|@8SESAmEklUu;=dFyrHKpGJC<~0easmdEL~B zoM+gOE&2ZQJYHsrr`jWi$Yzb?RV<)v!O(W*#I~e34q5z@$E%4dnAy0HK z@uRkM9P5<$!Is~8Mc?F14TiO{ITR)FL(xj9-fG28bk{N=HEftMqEGcFJZvZGu2TWa z`I1pZt=5-MdsZ~R zcGkRk^NMNTmYJK9Y<#L0IkfXDU7PorhJ+1}3}x#XihqEsr3X}oMw1@R_hi1~qBI8s z#;|QCjzq`5pnv5|_N&e|o{vTGQZ=aI_NU~Iqf0LCPH~*Ha3)M$9Th$^&35JqV*`4Y zwIoxG6JecaYZn=w-}4%MS}JfKnn1*z$?jtd=Qu@$ zuK$9$!tlwvNwlII7k+^bAR19RwncTVy^0UDLJ>_#(|d$F%r<@XvXYIkHka?d5H zvx7uOP(;qoRGSFUk;_KZ;-Mq#}bLJov&Y`!1`A?L6y0m|ELxJ;Kl+4Zn#vx(_cS(GuXH`- z+ql28oH~%Zu(_l1IaNFVZ&&rdUpLCm)XJX0i*xm8uw%rZ&%56H81vo_; zzYU{lHO*%F?XRyW?^EX~GInCh6+J&`3>neXT#JsI$#%)R{7p;*N2&fJxy2>P?PU?R zjUjpEQ-ci&JugVHx%SruMjLB1YeqG*{<*@}%>U8x6nSdpY zGL%`l_?2s6W_woJ*Lk{&qGd#`LC4+g zY*(|#&@xCn1+zCGVsyW;&d*>_O>?-H75VpeWX^I93epK$Ztc%f!73oElAME~Dz4-e zM6W^}DBh+HnL}SI$a+ANc7yPxyJEBk&HNakV|#xmXP(g-#FKgeMn*oXlHm6pG)dp) zp$+Q*n{JAC2h_>R%!x?WuvrC2Wk!)$K)Q3z6W-fM3%t65JOugYzeKN(RXjw{8d(Zq zVl(h+~o_3ee_RYJY*;y}Vni5xd6O`IlXw`t5#! z0IYzzSFgn+xi)HMSZRg01B_jpR~!p&`gRZ^jrp5v!&l_FZY&pm`R#;$?G&RA6lZRH zdb4plp&+L|@*(5masw|Q?T7|$MaO0wfW@7`T=@%7^PaE#a7UvFltV9nxB)W$dP;hK z8Dx6Q14%$vUJB8f4#=-Tl(6XqpkFCbQmAr8cZB>o&E}J!p>9i@fKIO%=^J)u0X|#= zD%nnmnRz(&W8}(ZJBTdtPu{LV&o3Va1$_5w-O10nHcUwfiBy!Azv4_!^nU-S?xzTX zUl5n%5nRTp7Q;nTh)ZTQQVgWmtqVomRh%?b!{J>$WGK1={LxZW@k!FjlY_r_Gtq{K zT|s9M;BkMo>K!Qjq(A7xN|`7Rs>tq|Ud9g8M?_PQS>?5K3OojQC33XE(x3oVIuaEE zLJw;YrJSfZLA8jA5>)}?_H(Q)4K03N_2PFa3NEBCWaj;NFlq=mY9+!AzVqBW-`GG`ai+wLwZnNaH6O`|;Z5%>@)((YRIx3M5&?Nm zJ;)ToQb55xzyo6#`l4caI7VL-X(h5GtW7X#k9kB4!ysk`K}vk=*soyXlSw{Tl}Yp# zXh~fW%d`&Oc+hHC52h+!fY#FXTk*w%&bYup#7EXQSPgK51TIjW#$ zR!$9)>sv4Tk~8kW7^Hbc?(=0A;b^S?KvndJR=FLXZ@<}oL;8nH>Vv%Em@@LyX9fvr zu8z`TPluL&L>H|l<57g_LfP;emseU(qg-3Ig+jlj75Kuov}lGFteVZ-4H@OePk7Ll z5hL*jRJYT8ZdCIbbo1)X9(}0G(BdP_T1r8WH9;uBW@uP-NYiVt zGv=oH;;px#93*#!*lo|`NooC1y-w6!im_#l%B?JFma+NU9B5Yvle*-V%KH2jp>-jm z4Hq9eZTS$`$$KCBm*31h$+?bn-cG{OOUUkr$fA8($&L&@2%Fl~;OvlKk9sEGB3ENLZ@N{#|*wqKTQuP&W%|1qexTYIY> zi4&4m2Q;EQ8$>q1PG39|EG#Tsa*$ZXVR^M= zK6@N=IIgKP4X3}JdBnT8eLEH{j$u`Vn10)$XcCv}_*A@4w&S4Gr}bgZB}yWqN25X; zIKRFh)NPEt7fv|N9`gF#Za((9`w{{-uK?580T}r43aqsclBsl6vU+an#RI8LEF<1v zAJIGbPt?H1sGi75d!fvjoMMxE&#=|gw-a)h)t5DI@ zE0-nPdFxB?E9U@ zHeWcjhbf?lUb`ox`$yFT;O$G!L0)>4rBEO*WvshKSoyR&?*38vljRnnBh2C#xsAst zxSJ?kMZ4%7+|~wpIWFmS?HtXc^L1bElh+xTt7$dt+gi6{Y26Q*^U+d?84Y&v4R5_h zqNlZzxVQ0d;64pQ`o#IXO^eWRi$;su)9OPH(*g;p+=ATs`KgPf)b`t)^DXQ31|qeO z?}~`ok`!|iz5o6mwU(L{68a_U5GPT}X+Y{_f0URuKifKvi-wLEezx{Nk*R{!6N#7I zP-peOju_8(eef9+X*9MT7(tO7{G>$=eZSv;pZu{oE=Hw-6rsPzV6#=2FmZN|#8mf& zD*tZ*o$;DD=~OmhZsOfAwza+&CTaP5-nl2+`g>DGyLJSIRt{E8Me!Q2(y^cXUoZ#|ZaoWy?DV8S~NB9}AYs&%V)!j&)O+ z^(SZi{JEBGnz@0%Ey}57R>E-#Q%;kOnX`pg4TW&|oe<9hUk3 z8XTQP?4^zjLtSmJ)`*SIgbAHq1>Hlc~{znVPVLBcXL0y%W!8`>K;D-{th3L*^ zStk$v`zg>3{OKBsgxQ%mVb0XMnL}T^4?7F-(}#KfFp~e&)T0*CD^(h0S{imFww z%rf+M*hGUTk%r`3m8Lg%nqAzp0)vWM7wa5mkqYodER?@v#J8C7(bitb(_aYC4n{)77?c5zVnzxSgl0;(r$M~_M z0EFvdQ4m});%~Wy%I<&0fy=zo7ET`b>Lrk1bnxuzwj;&%qybDtmNAT>l*+s`5u5@% zT3gN0NLGrd_8n?<&9i;7?sE+)hd@Gaa>4x|UuMW?Sq<;u+kKJ855BNWn`t-n1u1V4 z6z3(%X6N;s-=)}t^Dm(E*pl5^4~&!9mZNPm{V@abD~5{1*?l;QQk@j-zJkQ%735gi zd`Q<*Pl}Z&`4Kj{sTjg%Ttd?SmiBNrPe|)j%_+I{=HGa~q$T(g5rxVt<+;r8kUBOb zgpQ!m7}wB&8@outG0N&4y&t`91c6SXwEVj&ofUDL)oAe?i~|LcSEcEv;rR6Q_U9Ar zjt%_*L78nSxweYcU3MT|s7;?1;-Gz6fvVWodME_N1X`j><@I3vkEFuXBAw6#{hw7D zfu~`@?igGcup22nx%uZv8BE1kbJ21;+q*ONY1RahcD#<-<}##5U;bq>{|q2N4Wto( zvA5UImIUX~sf$qVmiF5gos%6vaDLhM`AgHNc;YO;p=G_AcaW~@-LE;&djcC#=yhQJ zXxB2V`Q)ojr=S||-7z#^ z-;dbXj+(I(B4V%|s^H1cUO0hW1I>H%I_-;x=E|>_i-f9+JY` z79Xy7RKtJNsuVN@X*FLF?ZFog)-d8uh%2lSwxPSBT8J9qp$>>1_BdMp>-t_8ZQJbz zk(s{M?mMx@0-twO5CWs8r0~%lXRpJ%G*@|nd;12rR*U>#)YC3W zy7xihA==v1eG5ve1RA!|@h?`|NOjX(kq*V$w;rY$<%GkxPyDURe&P!w>Ir_V2 z>6oyxe%vAd-&eP#Q+iz+hc+)lYLa*Ls(_qnUfU6!_egAy%RRp&MRlp2vS=nEh5(*n zd}n6mNB>W^qUBH!VPAz|7Eb8@b9p6jY_wQ|a~m^ST1$%D(u8skX?ji%Ht_C8=A>UQ z=3G4V2y1B&Q_*_h;nXMO|kmc)f%ZN@S}ba^NOrK zb$eN9Y7bswu(5f+tlU#1CubfSj}o`9Yma(1?Q~^zisa!sTQPy`7aM*cmW(~RXz_H2 z$8EhDRz;W&CS;@dcIsYYE!@)&Eon+m79_pq6Trc~a2^>>YpX}~%zr~wzaQiFvNuZG z3L%=~K68={kXnTmrZNzGKK*brB$eU(CqH5K)Z8G$xNwp9ZKVyD@sq*1KUd3%-g!5vNItDlInTa@$7o9xwogG#Xw*R)VLWMIM4XMe$VBO{HtN?~ zd`!}}()tQ?j=#Vp)n1CbX(dO^+DwuVvMR>vg!h+ETk%;(YOApI{eyW)y9m}>P&`@{ z;3#z_Yvo)qxBL2j+Ys|PW{P!4F0P-%A|%$m+A3;E2oL01nH%{Ym3v+68AIr|V)gIa zcTGL{pKs{NDq|#?ZnZu_NdLsVpo_MY+wu~F4gdYwELahkA2+qTy)Gs%+3e2Py^1zf zr`6yrqdFQ+ZXl;jWiB%a3;~w8rR@-*4+LFLE^tWg*tf=(O0q~t4PS-EAb*v*22ag5 zxs49bCYy?m-2`3Ge!Um^ZnoVO&j$V;)Y3YF^_~=syV~c&n~F*rtZ}#`L6YTxq7WWU z6BYL*gqhPZ+bWE~s8wauKN4EKV}<&)I%Br5srM}stHX063u75_nS0@D;-Gj`T0_ap z=cr!8vZyM%_E5;-G3^*=Am`UAgyRLh9`Jp+?$n;1DM{XJouF=h6yLZD2CM(DCvJq= z5|v>pIBnvEp1Cb1C2xHoYB+pX)R$*6lR-Ux%mdr@y$r_eYddY3)V>!lXSg0OP9e_r za@S$+!NhiptHUB^HkM`Sq82kH8dwfNh$F3FON^93?;cTs!pW_U$LvI;xX|h3h*#&P znl>zYr4pkTk{QeWp86vj3JuaNbt`k84M!Fk8A;z8>Ax_)M_4R_&}$x&(=HTP zZ}&#HieR}I(RyVdZxbu}oA#$Bd=aNyB8(HRTXKAP)2>Q7P}<&M6SHb$G*_`K$`(b@ z2jQ1HfQmOy#}>h9f488;Rf2ijORW5loVPysk1O<-yXNDQtj>#;Vj6@}J=!c$x-L>m zz-RHz0@^jcVe6!qCh(>2$MNx~df@E4o${%=t2FWISM(=*`Qb$DWUcoUdMCy6c_0Y( zNMB;?Gy^GetDt+6P>vyY)Fdm(e*~pj|s9xOxHbH-e;aZ5q z)Z=B2v*OX^;r*czj#_p2JPwioQCEEyZIa(zh1wq!C|xQ^dKK>Ix@(wSJPZaD?f8yn zT$C_JwXX!6c(r+r(-lV_h>Vua=o!+u`Bgy?rZb8SYl(e=JcaLx^#W`u-9F6H&hJABoUXHsa(}bv{u!&DwOj zZZ7o^tEA_b=5RHxKZ!SzrWNbPYlWLGUU~iv0r>ywzVx@pfmhyAhyjr@Bug)*8iv;2 z!^uWl`t;u1@?Uk3^u|9TBe(N_cWX6;L!rHK`Qh+?>)uD4WF7jE>w%;mb~c<9Zgnu{ zz<({`cbe!&tnD7zBzk|=`A75nr=jnFR)nh9Sa57eJ+dvrtz8cF^V=J3S_gCJq{F|T z4oXE+MB$Q@+u4~mU=aPEZcpYsG9K%`qZ!P)PE0FzLH_vh-|eckfDz~P`$<;{^`R%f3z?knT-JC$>)v2GUw!akq==axWAB=<+8 zTCA>117QA&%d0#_ce6D|mEZe$eESKhD4v(cV%=7>=O4+rIGqSHxBjodPG)F~ zdh2Z#rAxY+nOWm$C?!$mHYqXtf6wS17RZ>25y3)^b-^eo59+TGvg7_;5mZ5WF5EO1 zDa-Ig>Y|Go}9++YV^8p=x}_TMWw?m~)Wopat;R1Hm> z@(120ZvWrJ9nZ`WM3%CqVwreS-?YYdIxY8xxwH?3yfK1{jpp<@)>q=cx4RT!u=`^` zo_joU1h{EO8H;d#zfle+Qd4=tPxk+Q2`*gzCX!{|bK<1~CnDT_Uo@=sE5tJ6E`Pz$ ztZ@Fq^rQo-A2t4hM}HRmQ8Ys82n*f0A$8l;9F3>p4^(}2A*s45QgW&KPi+3bB|M&K zikv3Od9jFA7+tlvr*4}SZ+4gg7n;`QpibLZ*mF>nN%(14a^>GUEsbkD6W)!o^yR!j zN{Afc#doBfy}m^=Jg;tURTIOUo^U9M{O^km!*hU%8guXU$?$%UB6;8mwCkwuybl_J z`7Pf1LobL$5pLPWwHoVa?n~O^QIc2nXw;FESYa(!*)9c&a_IL~ zq5od5TZq+~CVvH3G!6QAdws2`jks;KhPzOEtD*k$7`FrdyL(LjUAu7@S#zMhKHK27 zWOHtPPZvhfq?C(VI`dwjD0&;S84m+VPD1i$@gIZ!a}%G+BUmPvOq2cnFQ*ihjO~Tw z+o$Zrxafv*&i%r>i|0UBc5V1A&oSSN zI;$itYhT^AHO~6)5_Ax(SEgu)H4Ww*x#!XP;Q#k0=o76)NXeJBIln%D+w0HE(srQd zV1(M3z8n90-4BJQp)Bza$fN}7h~IjO#L86s4{aJ4)tfqbNf%sF>*l~xoQI@r6m_1< zKCV%5BbA6dLMQE=LMPKLdI+~Pe?d%;W5_K`oF5aG#;w=;hV8#iHad)`BiojLQ$5AvXphK zV+*4i%Vd{rhN#G%Jt0&WV;Re29m&3?7(_kVI*8XU#1ZT69Hp9m$Ed4NS63 z#pWIp@9s3{@}bYMc4Fi4#MeMU!VuJ7bCM>h`(`f63~xaQkvLlY_B%Cozm-8q-{u8M zQhDC*v+a*>SlJ$YmPl>Mlg>YI>k^&F>r^oP&&q5p4L<6Ml8q$52rPSnx%@zNM1HD? z3D^F`;1>8q{o`d;e(jCF}9ElW#aN@N!#Bzi4&e_}_HN;8 z5Ef-`ts@WmA9e=W+>q%PzB-L1@!&fpGIPvTEekEL6>3dM0W7&e+%l?2Yf%!s+;+YY zLiVOzr~#Vbk%uIlhoF0f_M&-X^2kr1RjLLe1v0=p?)gzi@D_5mY1$piE-G#>$(W|T z_|U$291dfM?3&MZ>$~uw!+jNdS$R`Q@bEpkc<+<;;#E9*eRkYbr~CLMqM;BkV6K>C zVDjp-bH|e{A9;j(RkygmRcCzrRfDGnm{nNbOG^D>+)!!zrg#E!M>Y;B`DcL3zTD8!s}Y+%WS21x12F$(=TYUj&y7{Rs`^8*-e7b8Btmr(#A@ z)69VS0tmsYj#KG5Ga7DR+ZSd<7`nSi#-IACrIQGu0=GelDh;rxVJn1?02MqAV58qv zWiHuh8J!(TV?d-|3Ik>~kJbn#kbV9xRTv(gpSVXX0~0xOES8yAKOe`E6?^Tfd)(sA`ap&H8kXtu}%ovosnZbx6*sOVZ@E!o|E(8 z;pJ6;Rd)Ds56VMe`WDN^?vWCQ9P5GhdW_!^5o02OaPM&t9PNzLX;`Xg<6QKjvHS<$ zvG@V$R1TWWXVRNpM(@cCKo@Jks@!Bw3IWwO?jRzCYBvL-)oYIqw_1wo{jGEMK?=?| z0M^|ASc<2`4gzmX-3NnQfb-M>&gQZG2R0CL;$lHfA@ck0a3r%buPgQxDX8d`a6Y#`|QIH{Put{WgbLLR$j2HCs661g4T|pVw|0Y z1TFYd1*DiEzr2krU8A}CE*yXq3s;WC>Q2yOJg<8raHuQw1mTyyL5Z-bC>OMg5nea` zPzHl!T8{%jYU)3PLnr^a&j`{yLS;(@FBd!fRn(<6q=YQhnR#t1$NB)-Kh-dRMMSKn z-Bm38(&j$YfZ$VkPv?4gV9VI*Hkx5M zp(^5^oZAi0Zc-SYPnks+yvvTubyVr><7^pn@0vvfpXXn-JE*iiVCbuF^7Qw~Ugdjx z>f1jj2|so^1dMC+lYqFsy@Us9o%-fFP5uO%M%~z(%WX-Cpwcus6HpT?Qje&b z0$$qhju|83A&J+HH}lOn%v~n#06Z`L^$qbcH*GTv6?70!Ug6mI!l(57CZ!(K+}MI? zbluneqB61rv0o|wALZ~z3GT6oq>^}mDEp)d4Ctv^U*bjqvHIbhg`u9g?%@Enym2)q zIPVw&9x4PP|2&n?aw%l~hFQl;;a^b6aR9d7!+PQB3>j*XF_`R&H?+VKh0fd9;%d`Oc9;;8GVY zG*q2}W^e}`UZ2xBHMSkoi#I+K9yzBMaWM;z0zuQwBlA))aT8Gad)J@@Qv{m(^a2oO z>6S=9NFZ}?T+plWJ*8)kYDOCu|I7Q-PnVL`x0T zj$|b;D@lqaCCJlyz$AZt1x0yk4vy9=ZD~MGW3^rt$U={U)b3SKSlrOmYKho(V;@LgHoL&m9;*ugZ zuf2Pu?zVu>xm&G%*AMi^5%L@<(D~gxwkIvKin9_Bqipe{=v;08O7_7(fPVEO5aN=!?+w5Rp>C zzUWUhC0b!}tU7k0 z)Rwq=^mtRZj<*JLmoh3HRx&xB%WGsjaT!I?n#t$gW}Z-MLx7Hg2~CCx^0Q92>o97snecuMc4wmD|T*W?t6$z>(VRKuO~Y9BB@ z2lxFxmU{ G}|W$XcfKxIJ?)Nbhqiac%11h6Cr^zg1s9fma1LU_aB7fE7J%G9;!- z*|=+oCLoI*+Cp{Nel|k>1)i@PA+D|6!eY>fyafw&k)YbAl-tbw+mfX(WbAJ>6T8u=VOM08)~E#g-59cRoO5gQ3_@+3RaiGlWV*wQ+dj*GO7qWqKVc`w_^>-7bDIc54tAooKR|E1chA?y7Kf62u>$ea3ihcA=4Hqk(vEWx_Exh=uotd%M z5?lQ-0y5!}5+_u_`$4RtY_^uYY6F9krq7;bS z7Y%s>-GXvIu^?aXp5&Z5_cB%4UP^W8hR7L)OS_KMm{kVc7+atw_t;Ci`|b>%K#cf_ z1KE3WHgxLNdGf9lCCr|Q%AaS)KWe@=W%=_lv?>1Zafm&WMCMB3D)=%Xq(6{p>7nE5 zv|_80V#JZZ+DOw()Cz1aU@d@j>%Ualj-WdoN$FV%>8|QhYr}G!`{6+Ak%C)98=i9L z04qRNuP=QOF=wlLRY0^i{W7;0+CY;#V-4MsRHs7{#2COz7*2h45r?Wix;eg zA?WjaklQ|kV8F<(<>*t*#+kCF79bpg0WGhDYRB*PAHzrUW#+8BBoDRqmjpKMPP%{W zN2E`Csz_WeXo|L`D)ljMC?L<&AxHl#_3xf>+gu(%h-kW4sIDy-8B7EmF03`dD7oPl zA7sxok5=5t>uQxTo~gabnMv*3Zw5Bq7guqv)~brRSKSp}++7y!K!sgBpFVr7chzRw zFUWDDIbi?2p$&WUyWZ8XoyTQ<6dMjWR2sk!He$)&b`VFg?sE-~ zLpJ^c8wLJ8n#v__GcLLNsnWlwM*Y+#gMs0mA!4zoUs2dY0!JF8j zVZ|9?E3rTa7xwDMNoW$~h8Qos4q2K)thp1M-BQ)1u`7Uzx=zMfQEY1UsSj!J%?C(k zMCsN->RY-%TYAgrg=3?-v`Stf!aWu`Lwd`qn`jxOLe`L44%_4n*C3&gFpcHvWY$@B z0eKnGf1kpxM03cA3Nl(cLQor2=c-jAu-wiQp|@S*ZnxB)Z$rBPElxBGFgxPtU}@6W<7sCHwYU=KkX%0f1Vf;ezb6qtK!6ryG^wYcfYl@ z3}C&YO;+Bl{L^2Fh3Oez5XYc6X4jC;s{$#*1mW2qfoV-EiTyQF=fa((a)y~TY@&60 z&%mX|mK-uRt_;o}x*`skGdC99YpscESryCf4C-z3zcdi4;hv+&_vE3OzK4Yq8nxB> z=FMvdH(w>clqHy3=nasr00`sPKgxpjI&O8)K>qeG!b`(hW!)YxvZXBeIEBoAXZ6Ato8d#;TA`M! z1wd9Agf0Ce3}%2((BfA#j9jRtAqlRFb$Nv>h|j8)^$@y7xL{S0=MD-)tny%p>Ba~C z)7KDnntWI8sp1#o`bzk+4wi!Pm0|2-yND)vMfJJU`1;D={`6X$nghT#!;LWD+5Ro= z7WIaobX`zMboM9qA|csBtU8|BLV8w@=jpPf4OP|iqJF}!(&qMJ)mYq2rkn$6L(Imb z)-jFzLcZ_qpz@yo-M|Qo4UazmNwRx+Q~&0-39P?M9O;MoOQfJtVgPtF zPjpTJCm7o3>77Qb+5Sl7plz<4wz&hdD(t*I419Ac+Ll+Z7Y#JY(3QG}5Ivo)N>=0) z5tX;bt(B7@soEGx!Ug$?2Y5OX2)Bm;Tr)L4%A6T&Cz(c{TYEnQ&Ir!8R?#Kr*((fo z`*v!vK)sQo7#E+Yt))9}rGyicp6 zMn6BUA^#}|Vj^2YB7o1H(nUP)=h-f!Jjflt z_D{vE0NxfluEYs%=$f%13!2QPKz2&Nk*vWY-HYpp%C(JRF; zq8r>=z@*m+_DjVA%nAe275@J!sU>$G4EQ* zPmEd?AK(c5b9_!TJ#4tN0puU7V? zzxeF`R44q80xW>WRq?aKbq-1(gIp{8fEZldq#H5(YirhTw0Pj@(MmWcZ)H_rh|8CF z2W|ufnNvWj@Ex>J=rxpP{P%Fd-QK0f^pP^&(@YPaQN*P%;;c!pr7QkABX0|EMh{{w zRMhEk8Z&AS#-u<`gvc!wQR5C}H}$8|e^HEpw$Zvuh`yd*(Fqh0;*;Jbevbghyh@vQ z%+yO{|K4j5(^Wzk-q&voa5ZIB@zg@6cTuf=U~ZUGkC6V~6vEq>9vnEGaJEQf*L6=l zS#XG6CkYmtn`S%U*#A53iK?J})KYq|1d@^iqddFk0*aap1W)|DGiRdn7b|I;M7vW5 zN+7hQjR)lMP;8Rq@`L{xUoEymb5UM+iz;EH91v@;xupMhWx?*=Ut+u2IuZnL+48|- z-@hl?17g;iN&1d+vFP8Y=Eg)v67RPq&*xf9JXLB=&~N>T<@1CRe)&ur|LtBiF6O!a z=NedNOXXh?YfP0>*!~vAOAW1eDV04~8{OHI=4{1NXDl)U-?Fp(p6czN8By; z!hA;SIi^*^W$H4K-U!s~ZvCXzs4v3Fo9JYy++t)>!^^@>iN>HGb#_08OuxPxn_g;f zvXq+25L2rm%=Q)*w~@a2Y(2IJNMPP1e}it$z7k7X>P>|5W;F#OAqhy}!oi~6MS4Ie z0?(KyyzXt(9VB>|6lB393tm5xeuBhkBotE22rcc#HcT64(23Q(l zAAf8S_sAO?NL#(g23^a~Y98U<{Ng+Qa(!dHU8)1LJz@>Zb14V5FNWJgy>Lg?#>2>+ zwX;GO_jAXl2#a;*p`iz=+KABlLMEeO`v;y`tFt#3a=x=Z=Q3C)nTtGRt?pVr#P!E) zX&ak<|MJ@MmA`z4gw1v{f0Klgnxw}yQxW67;KFNHLx_)`7F`|mxgMftHtjy?=KJkY zrN|W3QZwGnR9UxLMQYb&cqwLMF-5yg;^YOt)X|*kA9Y7$?2f_07jmroO4an6>ENiS ze}Y$PmC8Ufd+q(tXaAGEDy=^6HOYx|n^+)$EZLf(gKes&NhKRQ8#Zz9qu~_O=e=^7 z+Yy>Yi)+vCN+L-9>9<$bf4Y@u=bJ?PX>L#Ncy*2H;=acRbmIKNxsDba4Cp)yw(KmA z0?GHrm3QQm1SC#e`#k5dUh(8wS;n9Cut?tXClufMXRgO?=%3K%%4j{840*6Bzig!u zCv(0^iw!Mhqqc`%*QE?$Rix$k1e1`o~ zt8xiZXW?T_9t>1h}j9H@B5XvViqUcO%4 z#(PsUDe)1CA*toBuO{KW4AOS+p_;z&MwabAmsCTSux_$40 zm*b%O#}b73a?RNt+;VQ7ysJ0l-}>p*%$b1~A40d&m#5*b$&Gg)%8&T0Tc)08%eu2H zZ&|Sim&KvdGGV2rF6yN5KF-O0_un~OHX`cCp_luTJ@!)EOQ=II1dDSV)@ zZSP!)?;FMqBXzhyvkSA3s-9G&j`fjr^Oq-r<2T%wTd0?~V$**+Sp7UUwA);JAxd!G zrc&r)q;A5s^PFWrqKox%U#ezcfUOJi){_EJmKw$5N-D)S5?cBo29moSL}E zH`&~Vl7@wof1#g%v2uRHmGmS0I#fO`x$rk8;TM4_7VIoe5|wHk{`uXnZjxbC&5`Zs zCk7={p?fI&Wsu%Be2Ew&<+pYb{>nf0+UC*3hu6ZzF{1YPhPHvTGW7x|v3fqSPdD#~ zp5948CEmREvm-9WtpzPEpowN#dLsWLicwYk_4$sQHxlC#PaLZdJl+5)#ow5sE|Op) zu*s1&Eb^I8X3$zmX=w>{u$;QV(Y#8q#(J0BO!ji-wC}u>UZ}Ws2km@gM#|x#;#DQ< zCe_DmlyR}A6uQSYFm?ai1_o_j-l5&w@Q(=o=FrM#}c)FJS zQjoxPj;eo?<@*L(B}7Cpu@2$PGFvL&m%eu~kj!$gA5E1nw|=gp94O6E#tWFXXEz_) zJ&>ILSi$fNr;`7paOLhWlEvmx`bhCN2yA`I&-UPg=r{I;ltrQ7yLE3L-%~vs7;`K$ zf`8GEdh5MZ1hQOzr*-|+l(^||@#mOSiSs(f`FGfIkWT-~!yL+H`0MxYi^fwK^VAB4 z$I>F|g4QoX9N2Z1#l&P_3a^p+PsR_hnmn(H{O6x|-Zy9VtSPfS_r9NyLrCkaC*tzCa^iNQq zL3gs_4Q?OyH~DvCUf(xhRj@+uj(%M8L2dUREHB>UYTo_f6L`7dSi#f_1{_`_l(ng5 z`g_eGL*P=*4b<;#{%vPc7~!!Sg9S--;?}SBbSNRF0mAu0miz6g;({ka(bSI4H{2Sh zh6ISZ)S+|tIa(Xa%Np{d#H~eNCFs1d_^RZ>WA2@itZ&7eUTUbt-FUol_pB{0(dBVc z{*>g9(5LL#DciLWJ5Iz{9i zs{wS%6*+%Hk7uw>x}IBXU%r_AOs+d0P0%hf1Txloejgkkv_b*||x zLYq@gIlt5Wqh5T}(SA(XBWz1nR<8M&S7Q~6KNpG8IqUVkL5Ac+{h)&`e!v1}nQO*; zc0kevlz+q=GM~}hS7~hYJrN!3@bp8JWj<-YP-aUJTKM}g=mpZn!mNph<=M(@zH?~O z=&P{&N!$5P{#z)CI8W!FogKrU69nx1lWP$VUQl3S-0UfYt4cN~%{Qce=#&5C0^;S!AlBFXZv8^}#aNzwXFAev!Hy68 z53^W{o%)F)5RVNdt_P7vks zA%r;NciICB!A_zx_ehR|jsgQ=fdcV4mst<&4)kUb&O9SYupI@rveOrnw0^(-G4@!R zU-nOy_{Edfh>0r#K4SQz-=E(01=jY)D^{ADor0<-I_+g_PgEZ*8GEFdPJ9|gs8WBb z%t@Hn{!^9_4|3790m9P0{I_FRC zwpkM5jS%&zsnd=@JHdq2FN4eXkpj_?p>#g-^nD!TXEqr*M6VQC_J4Gz1ON1N?%u>* HcZ~QyVt@cn literal 0 HcmV?d00001 diff --git a/bsp/amebaz/libraries/Kconfig b/bsp/amebaz/libraries/Kconfig new file mode 100644 index 0000000000..935bb1fef9 --- /dev/null +++ b/bsp/amebaz/libraries/Kconfig @@ -0,0 +1,7 @@ +menu "External Libraries" + + config RT_USING_SMARTCONFIG_LIB + bool "Using RT-Thrad SmartConfig Library" + default n + +endmenu diff --git a/bsp/amebaz/libraries/SConscript b/bsp/amebaz/libraries/SConscript new file mode 100644 index 0000000000..ca95be14e2 --- /dev/null +++ b/bsp/amebaz/libraries/SConscript @@ -0,0 +1,12 @@ +import os +from building import * + +objs = [] +cwd = GetCurrentDir() +list = os.listdir(cwd) + +for item in list: + if os.path.isfile(os.path.join(cwd, item, 'SConscript')): + objs = objs + SConscript(os.path.join(item, 'SConscript')) + +Return('objs') diff --git a/bsp/amebaz/libraries/smartconfig/SConscript b/bsp/amebaz/libraries/smartconfig/SConscript new file mode 100644 index 0000000000..4ae07e3815 --- /dev/null +++ b/bsp/amebaz/libraries/smartconfig/SConscript @@ -0,0 +1,18 @@ +Import('rtconfig') +from building import * + +cwd = GetCurrentDir() +src = [] +path = [cwd + '/inc'] +libs = [''] +libpath = [cwd + '/libs'] + +if rtconfig.CROSS_TOOL == 'gcc': + libs += ['libsmartconfig_armcm4_gcc'] +elif rtconfig.CROSS_TOOL == 'iar': + libs += ['libsmartconfig_armcm4_iar'] + +group = DefineGroup('smartconfig', src, depend = ['RT_USING_SMARTCONFIG_LIB'], CPPPATH = path, LIBS = libs, LIBPATH = libpath) + +Return('group') + diff --git a/bsp/amebaz/libraries/smartconfig/inc/smartconfig.h b/bsp/amebaz/libraries/smartconfig/inc/smartconfig.h new file mode 100644 index 0000000000..b215e983c4 --- /dev/null +++ b/bsp/amebaz/libraries/smartconfig/inc/smartconfig.h @@ -0,0 +1,62 @@ +/* + * File : smartconfig.h + * This file is part of RT-Thread RTOS + * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Change Logs: + * Date Author Notes + * 2018-09-13 Bernard the first version + */ +#ifndef __SMARTCONFIG_H__ +#define __SMARTCONFIG_H__ + +#define SMARTCONFIG_EVENT_CHANGE_CHANNEL (1 << 0) +#define SMARTCONFIG_EVENT_LOCKED_CHANNEL (1 << 1) +#define SMARTCONFIG_EVENT_COMPLETE (1 << 2) +#define SMARTCONFIG_EVENT_RESTART (1 << 3) +#define SMARTCONFIG_EVENT_STOP (1 << 4) + +typedef enum +{ + SMARTCONFIG_TYPE_AIRKISS = 0, + SMARTCONFIG_TYPE_JDSMART = 1, + SMARTCONFIG_TYPE_ESPTOUCH, + SMARTCONFIG_TYPE_REALTOUCH, + SMARTCONFIG_TYPE_ALL, + SMARTCONFIG_TYPE_MAX, +} rt_smartconfig_type; + +typedef enum +{ + SMARTCONFIG_ENCRYPT_NONE, + SMARTCONFIG_ENCRYPT_AES, +} rt_smartconfig_encrypt_type; + +typedef int (*rt_smartconfig_result_cb)(rt_smartconfig_type result_type, char *ssid, char *passwd, \ + void *userdata, rt_uint8_t userdata_len); +typedef void (*rt_smartconfig_event_handle)(rt_uint32_t event, void *userdata); + +int rt_smartconfig_start(rt_smartconfig_type config_type, rt_smartconfig_encrypt_type encrypt_type, char *encrypt, \ + rt_smartconfig_result_cb result_cb); + +int rt_smartconfig_stop(void); + +void rt_smartconfig_set_event_handle(rt_smartconfig_event_handle handle, void *userdata); + +char *rt_smartconfig_version(void); + +#endif diff --git a/bsp/amebaz/libraries/smartconfig/libs/libsmartconfig_armcm4_gcc.a b/bsp/amebaz/libraries/smartconfig/libs/libsmartconfig_armcm4_gcc.a new file mode 100644 index 0000000000000000000000000000000000000000..b7e261aa08ab236e3accd510c465be3bef4644f6 GIT binary patch literal 60214 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 Z7vA3eeCP>}y}N;nLPmS{{MPs4LAS* literal 0 HcmV?d00001 diff --git a/bsp/amebaz/project.ewd b/bsp/amebaz/project.ewd new file mode 100644 index 0000000000..9d0f67c974 --- /dev/null +++ b/bsp/amebaz/project.ewd @@ -0,0 +1,2697 @@ + + + + 2 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 26 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + CMSISDAP_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 1 + 1 + 1 + + + + + + + + + IJET_ID + 2 + + 3 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + MACRAIGOR_ID + 2 + + 3 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + PEMICRO_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + STLINK_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + XDS100_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + Release + + ARM + + 0 + + C-SPY + 2 + + 26 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 0 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + + CMSISDAP_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + IARROM_ID + 2 + + 1 + 1 + 0 + + + + + + + + + IJET_ID + 2 + + 3 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 15 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + MACRAIGOR_ID + 2 + + 3 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + PEMICRO_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + + + + + + + STLINK_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + XDS100_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + + diff --git a/bsp/amebaz/project.ewp b/bsp/amebaz/project.ewp new file mode 100644 index 0000000000..aa4eec3342 --- /dev/null +++ b/bsp/amebaz/project.ewp @@ -0,0 +1,2434 @@ + + 2 + + Debug + + ARM + + 1 + + General + 3 + + 22 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 31 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + CSCRIPT "$PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\prebuild.vbs" "$PROJ_DIR$" "1" "0x08080000" + CSCRIPT "$PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\postbuild_img2.vbs" "$TARGET_DIR$" "$PROJ_DIR$" + + + + ILINK + 0 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 22 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 31 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 9 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 16 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + Applications + + $PROJ_DIR$\applications\main.c + + + $PROJ_DIR$\applications\smartconfig_app.c + + + + Drivers + + $PROJ_DIR$\drivers\board.c + + + $PROJ_DIR$\drivers\drv_uart.c + + + $PROJ_DIR$\drivers\wlan\drv_wifi.c + + + $PROJ_DIR$\drivers\wlan\drv_wlan.c + + + + smartconfig + + + amebaz_sdk + + $PROJ_DIR$\packages\realtek_ameba-latest\rtthread_patch\os\rtthread_service.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\rtthread_patch\realtek\8711b\app_start.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\rtthread_patch\realtek\8711b\rtl8710b_startup.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\rtthread_patch\realtek\common\wifi\wifi_conf.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\wifi\rtw_wpa_supplicant\wpa_supplicant\wifi_eap_config.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\wifi\wifi_ind.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\wifi\wifi_promisc.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\wifi\wifi_util.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\analogin_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\dma_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\efuse_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\flash_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\gpio_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\gpio_irq_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\i2c_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\i2s_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\nfc_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\pinmap.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\pinmap_common.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\port_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\pwmout_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\rtc_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\serial_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\sleep.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\spi_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\sys_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\timer_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\us_ticker.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\us_ticker_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\wait_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b\wdt_api.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\os\os_dep\osdep_service.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\app\monitor\ram\monitor.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\app\monitor\ram\rtl_consol.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\cmsis\device\system_8195a.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\fwlib\ram_lib\rtl8710b_intfcfg.c + + + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\fwlib\ram_lib\rtl8710b_pinmapcfg.c + + + + Kernel + + $PROJ_DIR$\..\..\src\clock.c + + + $PROJ_DIR$\..\..\src\components.c + + + $PROJ_DIR$\..\..\src\device.c + + + $PROJ_DIR$\..\..\src\idle.c + + + $PROJ_DIR$\..\..\src\ipc.c + + + $PROJ_DIR$\..\..\src\irq.c + + + $PROJ_DIR$\..\..\src\kservice.c + + + $PROJ_DIR$\..\..\src\mem.c + + + $PROJ_DIR$\..\..\src\mempool.c + + + $PROJ_DIR$\..\..\src\object.c + + + $PROJ_DIR$\..\..\src\scheduler.c + + + $PROJ_DIR$\..\..\src\signal.c + + + $PROJ_DIR$\..\..\src\thread.c + + + $PROJ_DIR$\..\..\src\timer.c + + + + CORTEX-M4 + + $PROJ_DIR$\..\..\libcpu\arm\cortex-m4\cpuport.c + + + $PROJ_DIR$\..\..\libcpu\arm\cortex-m4\context_iar.S + + + $PROJ_DIR$\..\..\libcpu\arm\common\backtrace.c + + + $PROJ_DIR$\..\..\libcpu\arm\common\div0.c + + + $PROJ_DIR$\..\..\libcpu\arm\common\showmem.c + + + + DeviceDrivers + + $PROJ_DIR$\..\..\components\drivers\serial\serial.c + + + $PROJ_DIR$\..\..\components\drivers\src\completion.c + + + $PROJ_DIR$\..\..\components\drivers\src\dataqueue.c + + + $PROJ_DIR$\..\..\components\drivers\src\pipe.c + + + $PROJ_DIR$\..\..\components\drivers\src\ringblk_buf.c + + + $PROJ_DIR$\..\..\components\drivers\src\ringbuffer.c + + + $PROJ_DIR$\..\..\components\drivers\src\waitqueue.c + + + $PROJ_DIR$\..\..\components\drivers\src\workqueue.c + + + $PROJ_DIR$\..\..\components\drivers\wlan\wlan_cfg.c + + + $PROJ_DIR$\..\..\components\drivers\wlan\wlan_cmd.c + + + $PROJ_DIR$\..\..\components\drivers\wlan\wlan_dev.c + + + $PROJ_DIR$\..\..\components\drivers\wlan\wlan_lwip.c + + + $PROJ_DIR$\..\..\components\drivers\wlan\wlan_mgnt.c + + + $PROJ_DIR$\..\..\components\drivers\wlan\wlan_prot.c + + + $PROJ_DIR$\..\..\components\drivers\wlan\wlan_workqueue.c + + + + finsh + + $PROJ_DIR$\..\..\components\finsh\shell.c + + + $PROJ_DIR$\..\..\components\finsh\symbol.c + + + $PROJ_DIR$\..\..\components\finsh\cmd.c + + + $PROJ_DIR$\..\..\components\finsh\msh.c + + + $PROJ_DIR$\..\..\components\finsh\msh_cmd.c + + + $PROJ_DIR$\..\..\components\finsh\msh_file.c + + + + dlib + + $PROJ_DIR$\..\..\components\libc\compilers\dlib\environ.c + + + $PROJ_DIR$\..\..\components\libc\compilers\dlib\libc.c + + + $PROJ_DIR$\..\..\components\libc\compilers\dlib\rmtx.c + + + $PROJ_DIR$\..\..\components\libc\compilers\dlib\stdio.c + + + $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_close.c + + + $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_lseek.c + + + $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_mem.c + + + $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_open.c + + + $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_read.c + + + $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_remove.c + + + $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_write.c + + + $PROJ_DIR$\..\..\components\libc\compilers\dlib\time.c + + + + lwIP + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\arch\sys_arch.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\api_lib.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\api_msg.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\err.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netbuf.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netdb.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netifapi.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\sockets.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\tcpip.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\def.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\dns.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\inet_chksum.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\init.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ip.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\memp.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\netif.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\pbuf.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\raw.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\stats.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\sys.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp_in.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp_out.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\timeouts.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\udp.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\netif\ethernet.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\netif\ethernetif.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\netif\lowpan6.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\autoip.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\dhcp.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\etharp.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\icmp.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\igmp.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_addr.c + + + $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_frag.c + + + $PROJ_DIR$\..\..\components\net\lwip_dhcpd\dhcp_server_raw.c + + + diff --git a/bsp/amebaz/project.eww b/bsp/amebaz/project.eww new file mode 100644 index 0000000000..faa93f37cd --- /dev/null +++ b/bsp/amebaz/project.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\project.ewp + + + + + diff --git a/bsp/amebaz/rtconfig.h b/bsp/amebaz/rtconfig.h index c2517b4185..5d8ee1df02 100644 --- a/bsp/amebaz/rtconfig.h +++ b/bsp/amebaz/rtconfig.h @@ -17,7 +17,7 @@ #define IDLE_THREAD_STACK_SIZE 256 #define RT_USING_TIMER_SOFT #define RT_TIMER_THREAD_PRIO 4 -#define RT_TIMER_THREAD_STACK_SIZE 512 +#define RT_TIMER_THREAD_STACK_SIZE 1024 #define RT_DEBUG /* Inter-Thread communication */ @@ -151,6 +151,9 @@ /* AT commands */ +#define LWIP_USING_DHCPD +#define DHCPD_SERVER_IP "192.168.169.1" +#define DHCPD_USING_ROUTER /* VBUS(Virtual Software BUS) */ @@ -216,6 +219,10 @@ /* Env config */ + +/* External Libraries */ + +#define RT_USING_SMARTCONFIG_LIB #define BSP_USING_WIFI #endif diff --git a/bsp/amebaz/rtconfig.py b/bsp/amebaz/rtconfig.py index 2711ffa04f..86b5b955b4 100644 --- a/bsp/amebaz/rtconfig.py +++ b/bsp/amebaz/rtconfig.py @@ -66,32 +66,6 @@ if PLATFORM == 'gcc': M_CFLAGS = CFLAGS + ' -mlong-calls -Dsourcerygxx -O0 -fPIC ' M_LFLAGS = DEVICE + ' -Wl,-z,max-page-size=0x4 -shared -fPIC -e main -nostdlib' - -elif PLATFORM == 'armcc': - # toolchains - CC = 'armcc' - AS = 'armasm' - AR = 'armar' - LINK = 'armlink' - TARGET_EXT = 'axf' - - DEVICE = ' --cpu=cortex-m4.fp' - CFLAGS = DEVICE + ' --apcs=interwork -DSTM32F429_439xx' - AFLAGS = DEVICE - LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers --list rtthread-stm32.map --scatter stm32f429_flash.sct' - - CFLAGS += ' -I' + EXEC_PATH + '/ARM/RV31/INC' - LFLAGS += ' --libpath ' + EXEC_PATH + '/ARM/RV31/LIB' - - EXEC_PATH += '/arm/bin40/' - - if BUILD == 'debug': - CFLAGS += ' -g -O0' - AFLAGS += ' -g' - else: - CFLAGS += ' -O2' - - POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' elif PLATFORM == 'iar': # toolchains @@ -101,7 +75,7 @@ elif PLATFORM == 'iar': LINK = 'ilinkarm' TARGET_EXT = 'out' - DEVICE = ' -D USE_STDPERIPH_DRIVER' + ' -D STM32F10X_HD' + DEVICE = '-Dewarm' CFLAGS = DEVICE CFLAGS += ' --diag_suppress Pa050' @@ -112,26 +86,31 @@ elif PLATFORM == 'iar': CFLAGS += ' --no_tbaa' CFLAGS += ' --no_clustering' CFLAGS += ' --no_scheduling' - CFLAGS += ' --debug' CFLAGS += ' --endian=little' CFLAGS += ' --cpu=Cortex-M4' CFLAGS += ' -e' CFLAGS += ' --fpu=None' CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"' - CFLAGS += ' -Ol' - CFLAGS += ' --use_c++_inline' + CFLAGS += ' --silent' - AFLAGS = '' + AFLAGS = DEVICE AFLAGS += ' -s+' AFLAGS += ' -w+' AFLAGS += ' -r' AFLAGS += ' --cpu Cortex-M4' AFLAGS += ' --fpu None' + AFLAGS += ' -S' - LFLAGS = ' --config stm32f429_flash.icf' + if BUILD == 'debug': + CFLAGS += ' --debug' + CFLAGS += ' -On' + else: + CFLAGS += ' -Oh' + + LFLAGS = ' --config rom_symbol_v01_iar.icf' LFLAGS += ' --redirect _Printf=_PrintfTiny' LFLAGS += ' --redirect _Scanf=_ScanfSmall' LFLAGS += ' --entry __iar_program_start' EXEC_PATH = EXEC_PATH + '/arm/bin/' - POST_ACTION = '' + POST_ACTION = 'ielftool --bin $TARGET rt-thread.bin' diff --git a/bsp/amebaz/template.ewd b/bsp/amebaz/template.ewd new file mode 100644 index 0000000000..e2b2b0f6f9 --- /dev/null +++ b/bsp/amebaz/template.ewd @@ -0,0 +1,2733 @@ + + + + 2 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 26 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + CMSISDAP_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 1 + 1 + 1 + + + + + + + + + IJET_ID + 2 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + MACRAIGOR_ID + 2 + + 3 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + PEMICRO_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + STLINK_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + XDS100_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + Release + + ARM + + 0 + + C-SPY + 2 + + 26 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 0 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + + CMSISDAP_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + IARROM_ID + 2 + + 1 + 1 + 0 + + + + + + + + + IJET_ID + 2 + + 5 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 15 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + MACRAIGOR_ID + 2 + + 3 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + PEMICRO_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + + + + + + + STLINK_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + XDS100_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + + diff --git a/bsp/amebaz/template.ewp b/bsp/amebaz/template.ewp new file mode 100644 index 0000000000..328a1ea8ff --- /dev/null +++ b/bsp/amebaz/template.ewp @@ -0,0 +1,1898 @@ + + + + 2 + + Debug + + ARM + + 1 + + General + 3 + + 22 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 31 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + CSCRIPT "$PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\prebuild.vbs" "$PROJ_DIR$" "1" "0x08080000" + CSCRIPT "$PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\postbuild_img2.vbs" "$TARGET_DIR$" "$PROJ_DIR$" + + + + ILINK + 0 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 22 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 31 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 9 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 16 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + + diff --git a/bsp/amebaz/template.ewt b/bsp/amebaz/template.ewt new file mode 100644 index 0000000000..86815bea09 --- /dev/null +++ b/bsp/amebaz/template.ewt @@ -0,0 +1,2098 @@ + + + + 2 + + Debug + + ARM + + 1 + + RuntimeChecking + 0 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + C-STAT + 260 + + 1 + + 0 + + 600 + 0 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Release + + ARM + + 0 + + RuntimeChecking + 0 + + 2 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + C-STAT + 260 + + 1 + + 0 + + 600 + 0 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bsp/amebaz/template.eww b/bsp/amebaz/template.eww new file mode 100644 index 0000000000..bd036bb4c9 --- /dev/null +++ b/bsp/amebaz/template.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\template.ewp + + + + + diff --git a/bsp/amebaz/tmp.board b/bsp/amebaz/tmp.board new file mode 100644 index 0000000000..1bf54bd90e --- /dev/null +++ b/bsp/amebaz/tmp.board @@ -0,0 +1,21 @@ + + + + + CODE 0x8000000 0x8004fff + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash + 0x00000000 + + + CODE 0x800b020 0x807ffff + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash + 0xb020 + + + CODE 0x10005000 0x10005A9B + $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc\iar_utility\common\flashloader\FlashRTL8195aMP.flash + 0xb000 + --concat + + CODE 0x10005a9c 0x1003dfff +