未验证 提交 b43f0e72 编写于 作者: Y Yunjie Gu 提交者: GitHub

[bsp][tms320f28379d] Fix compile ti (#6254)

* compile_ok

Issues fixed:
(1) update .config: select FINSH_USING_SYMTAB
(2) add rt_size_t in rtconfig_project.h
(3) fix finsh problems of using sym table
(4) update .project to include ipc source codes.
Todo list:
(1) automate the build source selection of ccs and reconcile it with scons

* change compiler

* msh can run now

the key step is to swap the order of rt_interrupt_nest -- and RT_OBJECT_HOOK_CALL(rt_interrupt_leave_hook,()) in irq.c. This is an improvised solution and an issue has been raised.

* Update 2837x_FLASH_lnk_cpu1.cmd

The original one is also fine. Just to make it more rigorous since FSymTab is in data section.

* update readme.md

Complier selection and maintainer update.
Co-authored-by: wannomore's avatarYuQi <qiyu_sjtu@163.com>
上级 5b8a3678
...@@ -8,7 +8,6 @@ CONFIG_SOC_TMS320F28X=y ...@@ -8,7 +8,6 @@ CONFIG_SOC_TMS320F28X=y
# RT-Thread Kernel # RT-Thread Kernel
# #
CONFIG_RT_NAME_MAX=8 CONFIG_RT_NAME_MAX=8
# CONFIG_RT_USING_BIG_ENDIAN is not set
CONFIG_RT_USING_ARCH_DATA_TYPE=y CONFIG_RT_USING_ARCH_DATA_TYPE=y
# CONFIG_RT_USING_SMP is not set # CONFIG_RT_USING_SMP is not set
CONFIG_RT_ALIGN_SIZE=4 CONFIG_RT_ALIGN_SIZE=4
...@@ -19,6 +18,7 @@ CONFIG_RT_THREAD_PRIORITY_MAX=8 ...@@ -19,6 +18,7 @@ CONFIG_RT_THREAD_PRIORITY_MAX=8
CONFIG_RT_TICK_PER_SECOND=100 CONFIG_RT_TICK_PER_SECOND=100
# CONFIG_RT_USING_OVERFLOW_CHECK is not set # CONFIG_RT_USING_OVERFLOW_CHECK is not set
CONFIG_RT_USING_HOOK=y CONFIG_RT_USING_HOOK=y
CONFIG_RT_HOOK_USING_FUNC_PTR=y
CONFIG_RT_USING_IDLE_HOOK=y CONFIG_RT_USING_IDLE_HOOK=y
CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=1024 CONFIG_IDLE_THREAD_STACK_SIZE=1024
...@@ -29,10 +29,8 @@ CONFIG_IDLE_THREAD_STACK_SIZE=1024 ...@@ -29,10 +29,8 @@ CONFIG_IDLE_THREAD_STACK_SIZE=1024
# #
# CONFIG_RT_KSERVICE_USING_STDLIB is not set # CONFIG_RT_KSERVICE_USING_STDLIB is not set
# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set # CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
# CONFIG_RT_USING_ASM_MEMCPY is not set
# CONFIG_RT_USING_ASM_MEMSET is not set
# CONFIG_RT_USING_TINY_FFS is not set # CONFIG_RT_USING_TINY_FFS is not set
# CONFIG_RT_PRINTF_LONGLONG is not set # CONFIG_RT_KPRINTF_USING_LONGLONG is not set
CONFIG_RT_DEBUG=y CONFIG_RT_DEBUG=y
CONFIG_RT_DEBUG_COLOR=y CONFIG_RT_DEBUG_COLOR=y
# CONFIG_RT_DEBUG_INIT_CONFIG is not set # CONFIG_RT_DEBUG_INIT_CONFIG is not set
...@@ -81,7 +79,7 @@ CONFIG_RT_USING_DEVICE=y ...@@ -81,7 +79,7 @@ CONFIG_RT_USING_DEVICE=y
CONFIG_RT_USING_CONSOLE=y CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=128 CONFIG_RT_CONSOLEBUF_SIZE=128
CONFIG_RT_CONSOLE_DEVICE_NAME="scia" CONFIG_RT_CONSOLE_DEVICE_NAME="scia"
CONFIG_RT_VER_NUM=0x40100 CONFIG_RT_VER_NUM=0x40101
# CONFIG_RT_USING_CPU_FFS is not set # CONFIG_RT_USING_CPU_FFS is not set
CONFIG_ARCH_TIDSP=y CONFIG_ARCH_TIDSP=y
CONFIG_ARCH_TIDSP_C28X=y CONFIG_ARCH_TIDSP_C28X=y
...@@ -93,46 +91,33 @@ CONFIG_ARCH_CPU_STACK_GROWS_UPWARD=y ...@@ -93,46 +91,33 @@ CONFIG_ARCH_CPU_STACK_GROWS_UPWARD=y
CONFIG_RT_USING_COMPONENTS_INIT=y CONFIG_RT_USING_COMPONENTS_INIT=y
# CONFIG_RT_USING_USER_MAIN is not set # CONFIG_RT_USING_USER_MAIN is not set
# CONFIG_RT_USING_LEGACY is not set # CONFIG_RT_USING_LEGACY is not set
#
# C++ features
#
# CONFIG_RT_USING_CPLUSPLUS is not set
#
# Command shell
#
CONFIG_RT_USING_FINSH=y
CONFIG_RT_USING_MSH=y CONFIG_RT_USING_MSH=y
CONFIG_RT_USING_FINSH=y
CONFIG_FINSH_USING_MSH=y CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell" CONFIG_FINSH_THREAD_NAME="tshell"
CONFIG_FINSH_THREAD_PRIORITY=6 CONFIG_FINSH_THREAD_PRIORITY=4
CONFIG_FINSH_THREAD_STACK_SIZE=4096 CONFIG_FINSH_THREAD_STACK_SIZE=4096
CONFIG_FINSH_USING_HISTORY=y CONFIG_FINSH_USING_HISTORY=y
CONFIG_FINSH_HISTORY_LINES=5 CONFIG_FINSH_HISTORY_LINES=5
# CONFIG_FINSH_USING_SYMTAB is not set CONFIG_FINSH_USING_SYMTAB=y
CONFIG_FINSH_CMD_SIZE=80 CONFIG_FINSH_CMD_SIZE=80
CONFIG_MSH_USING_BUILT_IN_COMMANDS=y CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
# CONFIG_FINSH_USING_DESCRIPTION is not set CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
# CONFIG_FINSH_USING_AUTH is not set # CONFIG_FINSH_USING_AUTH is not set
CONFIG_FINSH_ARG_MAX=10 CONFIG_FINSH_ARG_MAX=10
#
# Device virtual file system
#
# CONFIG_RT_USING_DFS is not set # CONFIG_RT_USING_DFS is not set
# CONFIG_RT_USING_FAL is not set
# #
# Device Drivers # Device Drivers
# #
CONFIG_RT_USING_DEVICE_IPC=y CONFIG_RT_USING_DEVICE_IPC=y
CONFIG_RT_PIPE_BUFSZ=512
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set # CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
CONFIG_RT_USING_SERIAL=y CONFIG_RT_USING_SERIAL=y
CONFIG_RT_USING_SERIAL_V1=y CONFIG_RT_USING_SERIAL_V1=y
# CONFIG_RT_USING_SERIAL_V2 is not set # CONFIG_RT_USING_SERIAL_V2 is not set
CONFIG_RT_SERIAL_USING_DMA=y # CONFIG_RT_SERIAL_USING_DMA is not set
CONFIG_RT_SERIAL_RB_BUFSZ=64 CONFIG_RT_SERIAL_RB_BUFSZ=64
# CONFIG_RT_USING_CAN is not set # CONFIG_RT_USING_CAN is not set
# CONFIG_RT_USING_HWTIMER is not set # CONFIG_RT_USING_HWTIMER is not set
...@@ -166,10 +151,8 @@ CONFIG_RT_USING_PIN=y ...@@ -166,10 +151,8 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_USB_DEVICE is not set # CONFIG_RT_USING_USB_DEVICE is not set
# #
# POSIX layer and C standard library # C/C++ and POSIX layer
# #
# CONFIG_RT_USING_LIBC is not set
CONFIG_RT_LIBC_USING_TIME=y
CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# #
...@@ -177,41 +160,31 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 ...@@ -177,41 +160,31 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# #
# CONFIG_RT_USING_POSIX_FS is not set # CONFIG_RT_USING_POSIX_FS is not set
# CONFIG_RT_USING_POSIX_DELAY is not set # CONFIG_RT_USING_POSIX_DELAY is not set
# CONFIG_RT_USING_POSIX_GETLINE is not set # CONFIG_RT_USING_POSIX_CLOCK is not set
# CONFIG_RT_USING_POSIX_MMAP is not set # CONFIG_RT_USING_POSIX_TIMER is not set
# CONFIG_RT_USING_POSIX_TERMIOS is not set
# CONFIG_RT_USING_POSIX_AIO is not set
# CONFIG_RT_USING_PTHREADS is not set # CONFIG_RT_USING_PTHREADS is not set
# CONFIG_RT_USING_MODULE is not set
# #
# Network # Interprocess Communication (IPC)
# #
# CONFIG_RT_USING_POSIX_PIPE is not set
# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set
# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set
# #
# Socket abstraction layer # Socket is in the 'Network' category
# #
# CONFIG_RT_USING_SAL is not set # CONFIG_RT_USING_CPLUSPLUS is not set
# #
# Network interface device # Network
# #
# CONFIG_RT_USING_SAL is not set
# CONFIG_RT_USING_NETDEV is not set # CONFIG_RT_USING_NETDEV is not set
#
# light weight TCP/IP stack
#
# CONFIG_RT_USING_LWIP is not set # CONFIG_RT_USING_LWIP is not set
#
# AT commands
#
# CONFIG_RT_USING_AT is not set # CONFIG_RT_USING_AT is not set
#
# VBUS(Virtual Software BUS)
#
# CONFIG_RT_USING_VBUS is not set
# #
# Utilities # Utilities
# #
...@@ -220,6 +193,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 ...@@ -220,6 +193,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_UTEST is not set # CONFIG_RT_USING_UTEST is not set
# CONFIG_RT_USING_VAR_EXPORT is not set # CONFIG_RT_USING_VAR_EXPORT is not set
# CONFIG_RT_USING_RT_LINK is not set # CONFIG_RT_USING_RT_LINK is not set
# CONFIG_RT_USING_VBUS is not set
# #
# RT-Thread Utestcases # RT-Thread Utestcases
...@@ -233,15 +207,12 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 ...@@ -233,15 +207,12 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# #
# IoT - internet of things # IoT - internet of things
# #
# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
# CONFIG_PKG_USING_PAHOMQTT is not set # CONFIG_PKG_USING_PAHOMQTT is not set
# CONFIG_PKG_USING_UMQTT is not set
# CONFIG_PKG_USING_WEBCLIENT is not set # CONFIG_PKG_USING_WEBCLIENT is not set
# CONFIG_PKG_USING_WEBNET is not set # CONFIG_PKG_USING_WEBNET is not set
# CONFIG_PKG_USING_MONGOOSE is not set # CONFIG_PKG_USING_MONGOOSE is not set
# CONFIG_PKG_USING_MYMQTT is not set # CONFIG_PKG_USING_MYMQTT is not set
# CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_MQTTCLIENT is not set
# CONFIG_PKG_USING_BC28_MQTT is not set
# CONFIG_PKG_USING_WEBTERMINAL is not set # CONFIG_PKG_USING_WEBTERMINAL is not set
# CONFIG_PKG_USING_CJSON is not set # CONFIG_PKG_USING_CJSON is not set
# CONFIG_PKG_USING_JSMN is not set # CONFIG_PKG_USING_JSMN is not set
...@@ -268,12 +239,10 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 ...@@ -268,12 +239,10 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_COAP is not set # CONFIG_PKG_USING_COAP is not set
# CONFIG_PKG_USING_NOPOLL is not set # CONFIG_PKG_USING_NOPOLL is not set
# CONFIG_PKG_USING_NETUTILS is not set # CONFIG_PKG_USING_NETUTILS is not set
# CONFIG_PKG_USING_CMUX is not set
# CONFIG_PKG_USING_PPP_DEVICE is not set # CONFIG_PKG_USING_PPP_DEVICE is not set
# CONFIG_PKG_USING_AT_DEVICE is not set # CONFIG_PKG_USING_AT_DEVICE is not set
# CONFIG_PKG_USING_ATSRV_SOCKET is not set # CONFIG_PKG_USING_ATSRV_SOCKET is not set
# CONFIG_PKG_USING_WIZNET is not set # CONFIG_PKG_USING_WIZNET is not set
# CONFIG_PKG_USING_ZB_COORDINATOR is not set
# #
# IoT Cloud # IoT Cloud
...@@ -282,10 +251,9 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 ...@@ -282,10 +251,9 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_GAGENT_CLOUD is not set # CONFIG_PKG_USING_GAGENT_CLOUD is not set
# CONFIG_PKG_USING_ALI_IOTKIT is not set # CONFIG_PKG_USING_ALI_IOTKIT is not set
# CONFIG_PKG_USING_AZURE is not set # CONFIG_PKG_USING_AZURE is not set
# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set # CONFIG_PKG_USING_TENCENT_IOTHUB is not set
# CONFIG_PKG_USING_JIOT-C-SDK is not set # CONFIG_PKG_USING_JIOT-C-SDK is not set
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set # CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
# CONFIG_PKG_USING_NIMBLE is not set # CONFIG_PKG_USING_NIMBLE is not set
# CONFIG_PKG_USING_OTA_DOWNLOADER is not set # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
# CONFIG_PKG_USING_IPMSG is not set # CONFIG_PKG_USING_IPMSG is not set
...@@ -294,6 +262,8 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 ...@@ -294,6 +262,8 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_LIBRWS is not set # CONFIG_PKG_USING_LIBRWS is not set
# CONFIG_PKG_USING_TCPSERVER is not set # CONFIG_PKG_USING_TCPSERVER is not set
# CONFIG_PKG_USING_PROTOBUF_C is not set # CONFIG_PKG_USING_PROTOBUF_C is not set
# CONFIG_PKG_USING_ONNX_PARSER is not set
# CONFIG_PKG_USING_ONNX_BACKEND is not set
# CONFIG_PKG_USING_DLT645 is not set # CONFIG_PKG_USING_DLT645 is not set
# CONFIG_PKG_USING_QXWZ is not set # CONFIG_PKG_USING_QXWZ is not set
# CONFIG_PKG_USING_SMTP_CLIENT is not set # CONFIG_PKG_USING_SMTP_CLIENT is not set
...@@ -302,24 +272,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 ...@@ -302,24 +272,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_CAPNP is not set # CONFIG_PKG_USING_CAPNP is not set
# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set # CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
# CONFIG_PKG_USING_AGILE_TELNET is not set # CONFIG_PKG_USING_AGILE_TELNET is not set
# CONFIG_PKG_USING_NMEALIB is not set
# CONFIG_PKG_USING_AGILE_JSMN is not set
# CONFIG_PKG_USING_PDULIB is not set
# CONFIG_PKG_USING_BTSTACK is not set
# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
# CONFIG_PKG_USING_WAYZ_IOTKIT is not set
# CONFIG_PKG_USING_MAVLINK is not set
# CONFIG_PKG_USING_RAPIDJSON is not set
# CONFIG_PKG_USING_BSAL is not set
# CONFIG_PKG_USING_AGILE_MODBUS is not set
# CONFIG_PKG_USING_AGILE_FTP is not set
# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
# CONFIG_PKG_USING_RT_LINK_HW is not set
# CONFIG_PKG_USING_LORA_PKT_FWD is not set
# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
# CONFIG_PKG_USING_HM is not set
# CONFIG_PKG_USING_SMALL_MODBUS is not set
# #
# security packages # security packages
...@@ -328,7 +280,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 ...@@ -328,7 +280,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_libsodium is not set # CONFIG_PKG_USING_libsodium is not set
# CONFIG_PKG_USING_TINYCRYPT is not set # CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set # CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
# #
# language packages # language packages
...@@ -336,42 +287,15 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 ...@@ -336,42 +287,15 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_LUA is not set # CONFIG_PKG_USING_LUA is not set
# CONFIG_PKG_USING_JERRYSCRIPT is not set # CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set # CONFIG_PKG_USING_MICROPYTHON is not set
# CONFIG_PKG_USING_PIKASCRIPT is not set
# #
# multimedia packages # multimedia packages
# #
#
# LVGL: powerful and easy-to-use embedded GUI library
#
# CONFIG_PKG_USING_LVGL is not set
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
#
# u8g2: a monochrome graphic library
#
# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
# CONFIG_PKG_USING_U8G2 is not set
# CONFIG_PKG_USING_OPENMV is not set # CONFIG_PKG_USING_OPENMV is not set
# CONFIG_PKG_USING_MUPDF is not set # CONFIG_PKG_USING_MUPDF is not set
# CONFIG_PKG_USING_STEMWIN is not set # CONFIG_PKG_USING_STEMWIN is not set
# CONFIG_PKG_USING_WAVPLAYER is not set # CONFIG_PKG_USING_WAVPLAYER is not set
# CONFIG_PKG_USING_TJPGD is not set # CONFIG_PKG_USING_TJPGD is not set
# CONFIG_PKG_USING_PDFGEN is not set
# CONFIG_PKG_USING_HELIX is not set
# CONFIG_PKG_USING_AZUREGUIX is not set
# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
# CONFIG_PKG_USING_NUEMWIN is not set
# CONFIG_PKG_USING_MP3PLAYER is not set
# CONFIG_PKG_USING_TINYJPEG is not set
# CONFIG_PKG_USING_UGUI is not set
#
# PainterEngine: A cross-platform graphics application framework written in C language
#
# CONFIG_PKG_USING_PAINTERENGINE is not set
# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
# #
# tools packages # tools packages
...@@ -380,108 +304,36 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 ...@@ -380,108 +304,36 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_EASYFLASH is not set # CONFIG_PKG_USING_EASYFLASH is not set
# CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set
# CONFIG_PKG_USING_SEGGER_RTT is not set
# CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_RDB is not set
# CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_QRCODE is not set
# CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set
# CONFIG_PKG_USING_ULOG_FILE is not set
# CONFIG_PKG_USING_LOGMGR is not set
# CONFIG_PKG_USING_ADBD is not set # CONFIG_PKG_USING_ADBD is not set
# CONFIG_PKG_USING_COREMARK is not set # CONFIG_PKG_USING_COREMARK is not set
# CONFIG_PKG_USING_DHRYSTONE is not set # CONFIG_PKG_USING_DHRYSTONE is not set
# CONFIG_PKG_USING_MEMORYPERF is not set
# CONFIG_PKG_USING_NR_MICRO_SHELL is not set # CONFIG_PKG_USING_NR_MICRO_SHELL is not set
# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set # CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
# CONFIG_PKG_USING_LUNAR_CALENDAR is not set # CONFIG_PKG_USING_LUNAR_CALENDAR is not set
# CONFIG_PKG_USING_BS8116A is not set # CONFIG_PKG_USING_BS8116A is not set
# CONFIG_PKG_USING_GPS_RMC is not set
# CONFIG_PKG_USING_URLENCODE is not set
# CONFIG_PKG_USING_UMCN is not set
# CONFIG_PKG_USING_LWRB2RTT is not set
# CONFIG_PKG_USING_CPU_USAGE is not set
# CONFIG_PKG_USING_GBK2UTF8 is not set
# CONFIG_PKG_USING_VCONSOLE is not set
# CONFIG_PKG_USING_KDB is not set
# CONFIG_PKG_USING_WAMR is not set
# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
# CONFIG_PKG_USING_LWLOG is not set
# CONFIG_PKG_USING_ANV_TRACE is not set
# CONFIG_PKG_USING_ANV_MEMLEAK is not set
# CONFIG_PKG_USING_ANV_TESTSUIT is not set
# CONFIG_PKG_USING_ANV_BENCH is not set
# CONFIG_PKG_USING_DEVMEM is not set
# CONFIG_PKG_USING_REGEX is not set
# CONFIG_PKG_USING_MEM_SANDBOX is not set
# CONFIG_PKG_USING_SOLAR_TERMS is not set
# CONFIG_PKG_USING_GAN_ZHI is not set
# CONFIG_PKG_USING_FDT is not set
# #
# system packages # system packages
# #
#
# rt_kprintf: enhanced rt_kprintf packages
#
# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
#
# acceleration: Assembly language or algorithmic acceleration packages
#
# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
# CONFIG_PKG_USING_QFPLIB_M3 is not set
#
# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
#
# CONFIG_PKG_USING_CMSIS_5 is not set
# CONFIG_PKG_USING_CMSIS_5_AUX is not set
# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
#
# Micrium: Micrium software products porting for RT-Thread
#
# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
# CONFIG_PKG_USING_UC_CRC is not set
# CONFIG_PKG_USING_UC_CLK is not set
# CONFIG_PKG_USING_UC_COMMON is not set
# CONFIG_PKG_USING_UC_MODBUS is not set
# CONFIG_PKG_USING_GUIENGINE is not set # CONFIG_PKG_USING_GUIENGINE is not set
# CONFIG_PKG_USING_CAIRO is not set # CONFIG_PKG_USING_CAIRO is not set
# CONFIG_PKG_USING_PIXMAN is not set # CONFIG_PKG_USING_PIXMAN is not set
# CONFIG_PKG_USING_LWEXT4 is not set
# CONFIG_PKG_USING_PARTITION is not set # CONFIG_PKG_USING_PARTITION is not set
# CONFIG_PKG_USING_FAL is not set # CONFIG_PKG_USING_FAL is not set
# CONFIG_PKG_USING_FLASHDB is not set
# CONFIG_PKG_USING_SQLITE is not set # CONFIG_PKG_USING_SQLITE is not set
# CONFIG_PKG_USING_RTI 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 # CONFIG_PKG_USING_DFS_YAFFS is not set
# CONFIG_PKG_USING_LITTLEFS is not set # CONFIG_PKG_USING_LITTLEFS is not set
# CONFIG_PKG_USING_DFS_JFFS2 is not set
# CONFIG_PKG_USING_DFS_UFFS is not set
# CONFIG_PKG_USING_LWEXT4 is not set
# CONFIG_PKG_USING_THREAD_POOL is not set # CONFIG_PKG_USING_THREAD_POOL is not set
# CONFIG_PKG_USING_ROBOTS is not set # CONFIG_PKG_USING_ROBOTS is not set
# CONFIG_PKG_USING_EV is not set # CONFIG_PKG_USING_EV is not set
# CONFIG_PKG_USING_SYSWATCH is not set # CONFIG_PKG_USING_SYSWATCH is not set
# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
# CONFIG_PKG_USING_PLCCORE is not set
# CONFIG_PKG_USING_RAMDISK is not set
# CONFIG_PKG_USING_MININI is not set
# CONFIG_PKG_USING_QBOOT is not set
# CONFIG_PKG_USING_PPOOL is not set
# CONFIG_PKG_USING_OPENAMP is not set
# CONFIG_PKG_USING_LPM is not set
# CONFIG_PKG_USING_TLSF is not set
# CONFIG_PKG_USING_EVENT_RECORDER is not set
# CONFIG_PKG_USING_ARM_2D is not set
# CONFIG_PKG_USING_WCWIDTH is not set
# CONFIG_PKG_USING_MCUBOOT is not set
# CONFIG_PKG_USING_TINYUSB is not set
# CONFIG_PKG_USING_USB_STACK is not set
# #
# peripheral libraries and drivers # peripheral libraries and drivers
...@@ -490,21 +342,19 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 ...@@ -490,21 +342,19 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_REALTEK_AMEBA is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set
# CONFIG_PKG_USING_SHT2X is not set # CONFIG_PKG_USING_SHT2X is not set
# CONFIG_PKG_USING_SHT3X is not set # CONFIG_PKG_USING_SHT3X is not set
# CONFIG_PKG_USING_AS7341 is not set
# CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_STM32_SDIO is not set
# CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_ICM20608 is not set
# CONFIG_PKG_USING_U8G2 is not set
# CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_SX12XX is not set # CONFIG_PKG_USING_SX12XX is not set
# CONFIG_PKG_USING_SIGNAL_LED is not set # CONFIG_PKG_USING_SIGNAL_LED is not set
# CONFIG_PKG_USING_LEDBLINK is not set # CONFIG_PKG_USING_LEDBLINK is not set
# CONFIG_PKG_USING_LITTLED is not set # CONFIG_PKG_USING_LITTLED is not set
# CONFIG_PKG_USING_LKDGUI is not set
# CONFIG_PKG_USING_NRF5X_SDK is not set
# CONFIG_PKG_USING_NRFX is not set
# CONFIG_PKG_USING_WM_LIBRARIES is not set # CONFIG_PKG_USING_WM_LIBRARIES is not set
# CONFIG_PKG_USING_KENDRYTE_SDK is not set # CONFIG_PKG_USING_KENDRYTE_SDK is not set
# CONFIG_PKG_USING_INFRARED is not set # CONFIG_PKG_USING_INFRARED is not set
# CONFIG_PKG_USING_ROSSERIAL is not set
# CONFIG_PKG_USING_AGILE_BUTTON is not set # CONFIG_PKG_USING_AGILE_BUTTON is not set
# CONFIG_PKG_USING_AGILE_LED is not set # CONFIG_PKG_USING_AGILE_LED is not set
# CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_AT24CXX is not set
...@@ -518,110 +368,40 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 ...@@ -518,110 +368,40 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_RPLIDAR is not set # CONFIG_PKG_USING_RPLIDAR is not set
# CONFIG_PKG_USING_AS608 is not set # CONFIG_PKG_USING_AS608 is not set
# CONFIG_PKG_USING_RC522 is not set # CONFIG_PKG_USING_RC522 is not set
# CONFIG_PKG_USING_WS2812B is not set
# CONFIG_PKG_USING_EMBARC_BSP is not set # CONFIG_PKG_USING_EMBARC_BSP is not set
# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
# CONFIG_PKG_USING_MULTI_RTIMER is not set
# CONFIG_PKG_USING_MAX7219 is not set
# CONFIG_PKG_USING_BEEP is not set
# CONFIG_PKG_USING_EASYBLINK is not set
# CONFIG_PKG_USING_PMS_SERIES is not set
# CONFIG_PKG_USING_CAN_YMODEM is not set
# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
# CONFIG_PKG_USING_QLED is not set
# CONFIG_PKG_USING_PAJ7620 is not set
# CONFIG_PKG_USING_AGILE_CONSOLE is not set
# CONFIG_PKG_USING_LD3320 is not set
# CONFIG_PKG_USING_WK2124 is not set
# CONFIG_PKG_USING_LY68L6400 is not set
# CONFIG_PKG_USING_DM9051 is not set
# CONFIG_PKG_USING_SSD1306 is not set
# CONFIG_PKG_USING_QKEY is not set
# CONFIG_PKG_USING_RS485 is not set
# CONFIG_PKG_USING_NES is not set
# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
# CONFIG_PKG_USING_VDEVICE is not set
# CONFIG_PKG_USING_SGM706 is not set
# CONFIG_PKG_USING_STM32WB55_SDK is not set
# CONFIG_PKG_USING_RDA58XX is not set
# CONFIG_PKG_USING_LIBNFC is not set
# CONFIG_PKG_USING_MFOC is not set
# CONFIG_PKG_USING_TMC51XX is not set
# CONFIG_PKG_USING_TCA9534 is not set
# CONFIG_PKG_USING_KOBUKI is not set
# CONFIG_PKG_USING_ROSSERIAL is not set
# CONFIG_PKG_USING_MICRO_ROS is not set
# CONFIG_PKG_USING_MCP23008 is not set
# CONFIG_PKG_USING_BLUETRUM_SDK is not set
# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
# CONFIG_PKG_USING_BL_MCU_SDK is not set
# CONFIG_PKG_USING_SOFT_SERIAL is not set
# CONFIG_PKG_USING_MB85RS16 is not set
#
# AI packages
#
# CONFIG_PKG_USING_LIBANN is not set
# CONFIG_PKG_USING_NNOM is not set
# CONFIG_PKG_USING_ONNX_BACKEND is not set
# CONFIG_PKG_USING_ONNX_PARSER is not set
# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
# CONFIG_PKG_USING_ELAPACK is not set
# CONFIG_PKG_USING_ULAPACK is not set
# CONFIG_PKG_USING_QUEST is not set
# CONFIG_PKG_USING_NAXOS is not set
# #
# miscellaneous packages # miscellaneous packages
# #
#
# 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
#
# entertainment: terminal games and other interesting software packages
#
# CONFIG_PKG_USING_CMATRIX is not set
# CONFIG_PKG_USING_SL is not set
# CONFIG_PKG_USING_CAL is not set
# CONFIG_PKG_USING_ACLOCK is not set
# CONFIG_PKG_USING_THREES is not set
# CONFIG_PKG_USING_2048 is not set
# CONFIG_PKG_USING_SNAKE is not set
# CONFIG_PKG_USING_TETRIS is not set
# CONFIG_PKG_USING_DONUT is not set
# CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_LIBCSV is not set
# CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_OPTPARSE is not set
# CONFIG_PKG_USING_FASTLZ is not set # CONFIG_PKG_USING_FASTLZ is not set
# CONFIG_PKG_USING_MINILZO is not set # CONFIG_PKG_USING_MINILZO is not set
# CONFIG_PKG_USING_QUICKLZ is not set # CONFIG_PKG_USING_QUICKLZ is not set
# CONFIG_PKG_USING_LZMA is not set
# CONFIG_PKG_USING_MULTIBUTTON is not set # CONFIG_PKG_USING_MULTIBUTTON is not set
# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
# CONFIG_PKG_USING_CANFESTIVAL is not set # CONFIG_PKG_USING_CANFESTIVAL is not set
# CONFIG_PKG_USING_ZLIB is not set # CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_MINIZIP is not set
# CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set
# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_DIGITALCTRL is not set
# CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPACKER is not set
# CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_UPARAM 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
# CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set # CONFIG_PKG_USING_VI is not set
# CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_NNOM is not set
# CONFIG_PKG_USING_LIBANN is not set
# CONFIG_PKG_USING_ELAPACK is not set
# CONFIG_PKG_USING_ARMv7M_DWT is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set
# CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_VT100 is not set
# CONFIG_PKG_USING_ULAPACK is not set
# CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_UKAL is not set
# CONFIG_PKG_USING_CRCLIB is not set
# CONFIG_PKG_USING_LWGPS is not set
# CONFIG_PKG_USING_STATE_MACHINE is not set
# CONFIG_PKG_USING_MCURSES is not set
# CONFIG_PKG_USING_COWSAY is not set
# CONFIG_PKG_USING_TERMBOX is not set
此差异已折叠。
.launches/
\ No newline at end of file
...@@ -51,9 +51,9 @@ ...@@ -51,9 +51,9 @@
<locationURI>PARENT-2-PROJECT_LOC/components/drivers/serial/serial.c</locationURI> <locationURI>PARENT-2-PROJECT_LOC/components/drivers/serial/serial.c</locationURI>
</link> </link>
<link> <link>
<name>DeviceDrivers/src</name> <name>DeviceDrivers/ipc</name>
<type>2</type> <type>2</type>
<locationURI>PARENT-2-PROJECT_LOC/components/drivers/src</locationURI> <locationURI>PARENT-2-PROJECT_LOC/components/drivers/ipc</locationURI>
</link> </link>
</linkedResources> </linkedResources>
</projectDescription> </projectDescription>
eclipse.preferences.version=1 eclipse.preferences.version=1
encoding//Debug/DeviceDrivers/src/subdir_rules.mk=UTF-8 encoding//Debug/DeviceDrivers/ipc/subdir_rules.mk=UTF-8
encoding//Debug/DeviceDrivers/src/subdir_vars.mk=UTF-8 encoding//Debug/DeviceDrivers/ipc/subdir_vars.mk=UTF-8
encoding//Debug/DeviceDrivers/subdir_rules.mk=UTF-8 encoding//Debug/DeviceDrivers/subdir_rules.mk=UTF-8
encoding//Debug/DeviceDrivers/subdir_vars.mk=UTF-8 encoding//Debug/DeviceDrivers/subdir_vars.mk=UTF-8
encoding//Debug/Kernel/subdir_rules.mk=UTF-8 encoding//Debug/Kernel/subdir_rules.mk=UTF-8
......
...@@ -6,8 +6,6 @@ PAGE 0 : /* Program Memory */ ...@@ -6,8 +6,6 @@ PAGE 0 : /* Program Memory */
/* BEGIN is used for the "boot to Flash" bootloader mode */ /* BEGIN is used for the "boot to Flash" bootloader mode */
BEGIN : origin = 0x080000, length = 0x000002 BEGIN : origin = 0x080000, length = 0x000002
RAMM0 : origin = 0x000122, length = 0x0002DE
RAMD0 : origin = 0x00B000, length = 0x000800
RAMLS0 : origin = 0x008000, length = 0x000800 RAMLS0 : origin = 0x008000, length = 0x000800
RAMLS1 : origin = 0x008800, length = 0x000800 RAMLS1 : origin = 0x008800, length = 0x000800
RAMLS2 : origin = 0x009000, length = 0x000800 RAMLS2 : origin = 0x009000, length = 0x000800
...@@ -39,6 +37,8 @@ PAGE 1 : /* Data Memory */ ...@@ -39,6 +37,8 @@ PAGE 1 : /* Data Memory */
BOOT_RSVD : origin = 0x000002, length = 0x000120 /* Part of M0, BOOT rom will use this for stack */ BOOT_RSVD : origin = 0x000002, length = 0x000120 /* Part of M0, BOOT rom will use this for stack */
RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */ RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
RAMD1 : origin = 0x00B800, length = 0x000800 RAMD1 : origin = 0x00B800, length = 0x000800
RAMM0 : origin = 0x000122, length = 0x0002DE
RAMD0 : origin = 0x00B000, length = 0x000800
RAMLS5 : origin = 0x00A800, length = 0x000800 RAMLS5 : origin = 0x00A800, length = 0x000800
...@@ -94,7 +94,11 @@ SECTIONS ...@@ -94,7 +94,11 @@ SECTIONS
PAGE = 0, ALIGN(4) PAGE = 0, ALIGN(4)
#endif #endif
#endif #endif
FSymTab : > RAMD0, PAGE = 1, ALIGN(4)
LOAD_START(___fsymtab_start)
LOAD_END(___fsymtab_end)
/* Allocate uninitalized data sections: */ /* Allocate uninitalized data sections: */
.stack : > RAMM1 PAGE = 1 .stack : > RAMM1 PAGE = 1
.ebss : >> RAMLS5 | RAMGS0 | RAMGS1 PAGE = 1 .ebss : >> RAMLS5 | RAMGS0 | RAMGS1 PAGE = 1
......
...@@ -46,9 +46,7 @@ TMS320F28379D 程序的编译和下载要使用的是 TI 官方提供的 Code Co ...@@ -46,9 +46,7 @@ TMS320F28379D 程序的编译和下载要使用的是 TI 官方提供的 Code Co
![import_dia](figures/import_dia.png) ![import_dia](figures/import_dia.png)
### 2.2 编译工程 ### 2.2 编译工程
使用 CCS 内置的 C 编译器可以进行工程的编译,本文使用的是 Code Composer Studio 8.1.0 和 TI v18.1.3.LTS 编译器的组合。 使用 CCS 内置的 C 编译器可以进行工程的编译。CCS 8 需要使用 TI v18.1.3.LTS 编译器。CCS 10 需要使用 TI v20.2.1.LTS 及以上版本编译器(v20.2.0.LTS及以下版本的编译器有bug编译时会出现segmentation fault)。本文使用的是 Code Composer Studio 10.1.1 和 TI v20.2.4.LTS 编译器的组合(已经配置在工程文件中)。导入工程后,在右边的 Project Explorer 列表里可以看到刚刚导入的 rt-thread 工程,右键点击,在弹出的菜单中选择 Build Project 即可开始编译。
导入工程后,在右边的 Project Explorer 列表里可以看到刚刚导入的 rt-thread 工程,右键点击,在弹出的菜单中选择 Build Project 即可开始编译。
![build](figures/build.png) ![build](figures/build.png)
...@@ -70,9 +68,9 @@ TMS320F28379D 程序的编译和下载要使用的是 TI 官方提供的 Code Co ...@@ -70,9 +68,9 @@ TMS320F28379D 程序的编译和下载要使用的是 TI 官方提供的 Code Co
```bash ```bash
\ | / \ | /
- RT - Thread Operating System - RT - Thread Operating System
/ | \ 4.0.1 build Feb 21 2019 / | \ 4.1.1 build Jul 4 2022 22:33:37
2006 - 2019 Copyright by rt-thread team 2006 - 2022 Copyright by RT-Thread team
finsh > msh >
``` ```
## 4. 注意事项 ## 4. 注意事项
...@@ -97,6 +95,8 @@ finsh > ...@@ -97,6 +95,8 @@ finsh >
## 6. 联系人信息 ## 6. 联系人信息
维护人:xuzhuoyi < xzy476386434@vip.qq.com > 维护人:xuzhuoyi < xzy476386434@vip.qq.com >
qiyu < qiyu_sjtu@163.com >
guyunjie < yunjie.gu1@gmail.com >
## 7. 参考 ## 7. 参考
......
/* /*
* Copyright (c) 2006-2018, RT-Thread Development Team * Copyright (c) 2006-2022, RT-Thread Development Team
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *
...@@ -7,12 +7,17 @@ ...@@ -7,12 +7,17 @@
* Date Author Notes * Date Author Notes
* 2009-09-22 Bernard add board.h to this bsp * 2009-09-22 Bernard add board.h to this bsp
* 2018-09-02 xuzhuoyi modify for TMS320F28379D version * 2018-09-02 xuzhuoyi modify for TMS320F28379D version
* 2022-06-21 guyunjie fix bugs in trap_rtosint and enable interrupt nesting
*/ */
#include <rtthread.h> #include <rtthread.h>
#include "board.h" #include "board.h"
#include "drv_sci.h" #include "drv_sci.h"
#include "F28x_Project.h" #include "F28x_Project.h"
#ifndef RT_USING_SMP
extern volatile rt_uint8_t rt_interrupt_nest;
#endif
extern rt_uint32_t rt_thread_switch_interrupt_flag; extern rt_uint32_t rt_thread_switch_interrupt_flag;
extern interrupt void RTOSINT_Handler(); extern interrupt void RTOSINT_Handler();
...@@ -20,7 +25,20 @@ extern interrupt void RTOSINT_Handler(); ...@@ -20,7 +25,20 @@ extern interrupt void RTOSINT_Handler();
void trap_rtosint() void trap_rtosint()
{ {
if(rt_thread_switch_interrupt_flag) if(rt_thread_switch_interrupt_flag)
asm(" trap #16"); {
/* only do pendsv at the end of the last level of interrupt nesting,
* so that threads do not preempt any isrs. */
if(rt_interrupt_nest == 1)
{
/* rt_interrupt_leave_hook is called before rt_interrupt_nest --
* in rt_interrupt_leave. We need to do this manually here to indicate
* that all isrs have been cleared before we switch to thread. */
rt_interrupt_nest --;
asm(" trap #16");
/* increment rt_interrupt_nest to compensate for the previous decrement. */
rt_interrupt_nest ++;
}
}
} }
/** /**
...@@ -30,6 +48,9 @@ void trap_rtosint() ...@@ -30,6 +48,9 @@ void trap_rtosint()
interrupt void cpu_timer2_isr(void) interrupt void cpu_timer2_isr(void)
{ {
CpuTimer2Regs.TCR.all = 0xC000; CpuTimer2Regs.TCR.all = 0xC000;
ALLOW_ISR_PREEMPT();
/* enter interrupt */ /* enter interrupt */
rt_interrupt_enter(); rt_interrupt_enter();
...@@ -76,5 +97,6 @@ void rt_hw_board_init() ...@@ -76,5 +97,6 @@ void rt_hw_board_init()
#if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE) #if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE)
rt_console_set_device(RT_CONSOLE_DEVICE_NAME); rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
#endif #endif
/*this hook may cause problem for reasons unknown*/
rt_interrupt_leave_sethook((void (*)(void))trap_rtosint); rt_interrupt_leave_sethook((void (*)(void))trap_rtosint);
} }
/* /*
* Copyright (c) 2006-2018, RT-Thread Development Team * Copyright (c) 2006-2022, RT-Thread Development Team
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *
...@@ -181,6 +181,8 @@ static const struct rt_uart_ops c28x_uart_ops = ...@@ -181,6 +181,8 @@ static const struct rt_uart_ops c28x_uart_ops =
// //
interrupt void sciaRxFifoIsr(void) interrupt void sciaRxFifoIsr(void)
{ {
ALLOW_ISR_PREEMPT();
/* enter interrupt */ /* enter interrupt */
rt_interrupt_enter(); rt_interrupt_enter();
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#define RT_THREAD_PRIORITY_MAX 8 #define RT_THREAD_PRIORITY_MAX 8
#define RT_TICK_PER_SECOND 100 #define RT_TICK_PER_SECOND 100
#define RT_USING_HOOK #define RT_USING_HOOK
#define RT_HOOK_USING_FUNC_PTR
#define RT_USING_IDLE_HOOK #define RT_USING_IDLE_HOOK
#define RT_IDLE_HOOK_LIST_SIZE 4 #define RT_IDLE_HOOK_LIST_SIZE 4
#define IDLE_THREAD_STACK_SIZE 1024 #define IDLE_THREAD_STACK_SIZE 1024
...@@ -45,7 +46,7 @@ ...@@ -45,7 +46,7 @@
#define RT_USING_CONSOLE #define RT_USING_CONSOLE
#define RT_CONSOLEBUF_SIZE 128 #define RT_CONSOLEBUF_SIZE 128
#define RT_CONSOLE_DEVICE_NAME "scia" #define RT_CONSOLE_DEVICE_NAME "scia"
#define RT_VER_NUM 0x40100 #define RT_VER_NUM 0x40101
#define ARCH_TIDSP #define ARCH_TIDSP
#define ARCH_TIDSP_C28X #define ARCH_TIDSP_C28X
#define ARCH_CPU_STACK_GROWS_UPWARD #define ARCH_CPU_STACK_GROWS_UPWARD
...@@ -53,63 +54,45 @@ ...@@ -53,63 +54,45 @@
/* RT-Thread Components */ /* RT-Thread Components */
#define RT_USING_COMPONENTS_INIT #define RT_USING_COMPONENTS_INIT
/* C++ features */
/* Command shell */
#define RT_USING_FINSH
#define RT_USING_MSH #define RT_USING_MSH
#define RT_USING_FINSH
#define FINSH_USING_MSH #define FINSH_USING_MSH
#define FINSH_THREAD_NAME "tshell" #define FINSH_THREAD_NAME "tshell"
#define FINSH_THREAD_PRIORITY 6 #define FINSH_THREAD_PRIORITY 4
#define FINSH_THREAD_STACK_SIZE 4096 #define FINSH_THREAD_STACK_SIZE 4096
#define FINSH_USING_HISTORY #define FINSH_USING_HISTORY
#define FINSH_HISTORY_LINES 5 #define FINSH_HISTORY_LINES 5
#define FINSH_USING_SYMTAB
#define FINSH_CMD_SIZE 80 #define FINSH_CMD_SIZE 80
#define MSH_USING_BUILT_IN_COMMANDS #define MSH_USING_BUILT_IN_COMMANDS
#define FINSH_USING_DESCRIPTION
#define FINSH_ARG_MAX 10 #define FINSH_ARG_MAX 10
/* Device virtual file system */
/* Device Drivers */ /* Device Drivers */
#define RT_USING_DEVICE_IPC #define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL #define RT_USING_SERIAL
#define RT_USING_SERIAL_V1 #define RT_USING_SERIAL_V1
#define RT_SERIAL_USING_DMA
#define RT_SERIAL_RB_BUFSZ 64 #define RT_SERIAL_RB_BUFSZ 64
#define RT_USING_PIN #define RT_USING_PIN
/* Using USB */ /* Using USB */
/* POSIX layer and C standard library */ /* C/C++ and POSIX layer */
#define RT_LIBC_USING_TIME
#define RT_LIBC_DEFAULT_TIMEZONE 8 #define RT_LIBC_DEFAULT_TIMEZONE 8
/* POSIX (Portable Operating System Interface) layer */ /* POSIX (Portable Operating System Interface) layer */
/* Network */ /* Interprocess Communication (IPC) */
/* Socket abstraction layer */
/* Network interface device */
/* light weight TCP/IP stack */ /* Socket is in the 'Network' category */
/* AT commands */ /* Network */
/* VBUS(Virtual Software BUS) */
/* Utilities */ /* Utilities */
...@@ -142,44 +125,20 @@ ...@@ -142,44 +125,20 @@
/* multimedia packages */ /* multimedia packages */
/* LVGL: powerful and easy-to-use embedded GUI library */
/* u8g2: a monochrome graphic library */
/* PainterEngine: A cross-platform graphics application framework written in C language */
/* tools packages */ /* tools packages */
/* system packages */ /* system packages */
/* rt_kprintf: enhanced rt_kprintf packages */
/* acceleration: Assembly language or algorithmic acceleration packages */
/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
/* Micrium: Micrium software products porting for RT-Thread */
/* peripheral libraries and drivers */ /* peripheral libraries and drivers */
/* AI packages */
/* miscellaneous packages */ /* miscellaneous packages */
/* samples: kernel and components samples */
/* entertainment: terminal games and other interesting software packages */ /* samples: kernel and components samples */
#include "rtconfig_project.h" #include "rtconfig_project.h"
......
...@@ -19,5 +19,11 @@ typedef unsigned char rt_uint8_t; /**< 8bit unsigned inte ...@@ -19,5 +19,11 @@ typedef unsigned char rt_uint8_t; /**< 8bit unsigned inte
typedef unsigned short rt_uint16_t; /**< 16bit 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 rt_uint32_t; /**< 32bit unsigned integer type */
typedef unsigned long long rt_uint64_t; /**< 64bit 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 automatically disable interrupt in interrupt service routine.
* We need to enable manually to allow for interrupt nesting by calling
* this macro at the start of preemptible interrupt service routines*/
#define ALLOW_ISR_PREEMPT() __asm(" CLRC INTM")
#endif #endif
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
; 2019-06-17 zhaoxiaowei fix bugs of old c28x interrupt api. ; 2019-06-17 zhaoxiaowei fix bugs of old c28x interrupt api.
; 2019-07-03 zhaoxiaowei add _rt_hw_calc_csb function to support __rt_ffs. ; 2019-07-03 zhaoxiaowei add _rt_hw_calc_csb function to support __rt_ffs.
; 2019-12-05 xiaolifan add support for hardware fpu32 ; 2019-12-05 xiaolifan add support for hardware fpu32
; ; 2022-06-21 guyunjie trim pendsv (RTOSINT_Handler)
.ref _rt_interrupt_to_thread .ref _rt_interrupt_to_thread
.ref _rt_interrupt_from_thread .ref _rt_interrupt_from_thread
...@@ -191,8 +191,8 @@ _reswitch2: ...@@ -191,8 +191,8 @@ _reswitch2:
.asmfunc .asmfunc
_RTOSINT_Handler: _RTOSINT_Handler:
; disable interrupt to protect context switch ; disable interrupt to protect context switch
DINT ; DINT ;this is done by hardware so not needed
; get rt_thread_switch_interrupt_flag ; get rt_thread_switch_interrupt_flag
MOV AR0, #_rt_thread_switch_interrupt_flag MOV AR0, #_rt_thread_switch_interrupt_flag
...@@ -248,8 +248,8 @@ switch_to_thread: ...@@ -248,8 +248,8 @@ switch_to_thread:
RT_CTX_RESTORE ; pop r4 - r11 register RT_CTX_RESTORE ; pop r4 - r11 register
rtosint_exit: rtosint_exit:
; restore interrupt ; do not restore interrupt here: to be restored according to the
EINT ; switched-to context during IRET (automaticlly by hardware)
IRET IRET
.endasmfunc .endasmfunc
......
/* /*
* Copyright (c) 2006-2021, RT-Thread Development Team * Copyright (c) 2006-2022, RT-Thread Development Team
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
* 2018-11-22 Jesven rt_interrupt_get_nest function add disable irq * 2018-11-22 Jesven rt_interrupt_get_nest function add disable irq
* 2021-08-15 Supperthomas fix the comment * 2021-08-15 Supperthomas fix the comment
* 2022-01-07 Gabriel Moving __on_rt_xxxxx_hook to irq.c * 2022-01-07 Gabriel Moving __on_rt_xxxxx_hook to irq.c
* 2022-07-04 Yunjie fix RT_DEBUG_LOG
*/ */
#include <rthw.h> #include <rthw.h>
...@@ -87,7 +88,7 @@ void rt_interrupt_enter(void) ...@@ -87,7 +88,7 @@ void rt_interrupt_enter(void)
rt_hw_interrupt_enable(level); rt_hw_interrupt_enable(level);
RT_DEBUG_LOG(RT_DEBUG_IRQ, ("irq has come..., irq current nest:%d\n", RT_DEBUG_LOG(RT_DEBUG_IRQ, ("irq has come..., irq current nest:%d\n",
rt_interrupt_nest)); (rt_int32_t)rt_interrupt_nest));
} }
RTM_EXPORT(rt_interrupt_enter); RTM_EXPORT(rt_interrupt_enter);
...@@ -104,7 +105,7 @@ void rt_interrupt_leave(void) ...@@ -104,7 +105,7 @@ void rt_interrupt_leave(void)
rt_base_t level; rt_base_t level;
RT_DEBUG_LOG(RT_DEBUG_IRQ, ("irq is going to leave, irq current nest:%d\n", RT_DEBUG_LOG(RT_DEBUG_IRQ, ("irq is going to leave, irq current nest:%d\n",
rt_interrupt_nest)); (rt_int32_t)rt_interrupt_nest));
level = rt_hw_interrupt_disable(); level = rt_hw_interrupt_disable();
RT_OBJECT_HOOK_CALL(rt_interrupt_leave_hook,()); RT_OBJECT_HOOK_CALL(rt_interrupt_leave_hook,());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册