diff --git a/bsp/tms320f28379d/.config b/bsp/tms320f28379d/.config
index 78676c796b5d0e8be9d46b1e66398b7c3b9d77c6..6792c2d65cd40fffbb635ab0e4fc7eb491620e9d 100644
--- a/bsp/tms320f28379d/.config
+++ b/bsp/tms320f28379d/.config
@@ -8,7 +8,7 @@ CONFIG_SOC_TMS320F28X=y
# RT-Thread Kernel
#
CONFIG_RT_NAME_MAX=8
-CONFIG_RT_USING_ARCH_DATA_TYPE=y
+# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
# CONFIG_RT_USING_SMP is not set
CONFIG_RT_ALIGN_SIZE=4
CONFIG_RT_THREAD_PRIORITY_8=y
diff --git a/bsp/tms320f28379d/.cproject b/bsp/tms320f28379d/.cproject
index ffc753da96dc11bf02d733130bb219b196b8a53d..801e7f7584ab8556d35ce8c3e5486ea6d605e469 100644
--- a/bsp/tms320f28379d/.cproject
+++ b/bsp/tms320f28379d/.cproject
@@ -27,18 +27,18 @@
-
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
-
-
-
-
+
+
+
diff --git a/bsp/tms320f28379d/rtconfig.h b/bsp/tms320f28379d/rtconfig.h
index d7e86eb5dfa3fd3e2d8e10924b2f5ecbf8171131..ddeaa7c61f2c6756dfe245c2628ef435d9fb74ac 100644
--- a/bsp/tms320f28379d/rtconfig.h
+++ b/bsp/tms320f28379d/rtconfig.h
@@ -9,7 +9,6 @@
/* RT-Thread Kernel */
#define RT_NAME_MAX 8
-#define RT_USING_ARCH_DATA_TYPE
#define RT_ALIGN_SIZE 4
#define RT_THREAD_PRIORITY_8
#define RT_THREAD_PRIORITY_MAX 8
diff --git a/bsp/tms320f28379d/rtconfig_project.h b/bsp/tms320f28379d/rtconfig_project.h
index 9dd2d2e9e82e9f4be658682c4b82bab23cef54fc..fb6a3dffbb6e2b82eec413166efd5c875d94e269 100644
--- a/bsp/tms320f28379d/rtconfig_project.h
+++ b/bsp/tms320f28379d/rtconfig_project.h
@@ -1,25 +1,23 @@
/*
- * Copyright (c) 2006-2019, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2019-03-27 xuzhuoyi the first version
+ * 2022-08-22 guyunjie remove data types other than 8bit for compatibility with libc
*/
#ifndef __RTCONFIG_PROJECT_H__
#define __RTCONFIG_PROJECT_H__
-typedef signed char rt_int8_t; /**< 8bit integer type */
-typedef signed short rt_int16_t; /**< 16bit integer type */
-typedef signed long rt_int32_t; /**< 32bit integer type */
-typedef signed long long rt_int64_t; /**< 64bit integer type */
-typedef unsigned char rt_uint8_t; /**< 8bit unsigned integer type */
-typedef unsigned short rt_uint16_t; /**< 16bit unsigned integer type */
-typedef unsigned long rt_uint32_t; /**< 32bit unsigned integer type */
-typedef unsigned long long rt_uint64_t; /**< 64bit unsigned integer type */
-typedef unsigned long rt_size_t; /**< Type for size number */
+/* C28X does not support 8bit data type by hardward (char = 16bit) so
+ * 8bit data types are not defined in its standard libs. We define them
+ * here. Be careful that the 8bit is actually 16bit. */
+#define UINT8_MAX 0xff /**< Maximum number of UINT8 */
+typedef signed char int8_t; /**< 8bit integer type */
+typedef unsigned char uint8_t; /**< 8bit unsigned integer type */
/* C28X automatically disable interrupt in interrupt service routine.
* We need to enable manually to allow for interrupt nesting by calling