Skip to content

Commit a7fa3a7

Browse files
committed
S32K344 Basic porting : FINSH
1 parent 49b6614 commit a7fa3a7

24 files changed

+4001
-0
lines changed

bsp/nxp/S32K3/README.md

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# S32K3 BSP 说明
2+
3+
## S32K344
4+
5+
### 1. 介绍:
6+
7+
基础工程:
8+
9+
- LPUART3(PD3-Rx, PD2-Tx) :
10+
- 每2s打印hello
11+
- finsh
12+
13+
使用软件包:SW32K3_S32M27x_RTD_R21-11_5.0.0
14+
15+
生成工具:S32 Design Studio for S32 Platform 3.5
16+
17+
18+
使用样板:
19+
20+
![](./img/使用样板.png)
21+
22+
### 2. 例程使用准备:
23+
24+
- 目前仅使用gcc编译,为了增加同通用性,例程尽量使用了寄存器操作。在编译前请将`bsp\nxp\S32K3\S32K344-core\libraries\s32k344_SDK``board`中的文件补充完整:
25+
26+
| 目录名 | 对应nxp目录 | 备注 |
27+
| -------------------- | ------------------------------------------ | --------------------------------------- |
28+
| header | BaseNXP_TS_T40D34M50I0R0\header | 寄存器定义(在nxp软件包目录下查找) |
29+
| include | | 在下一步中补充 |
30+
| Startup_Code\inc | Platform_TS_T40D34M50I0R0\startup\include | 芯片启动头文件(在nxp软件包目录下查找) |
31+
| Startup_Code\src | 生成模板工程\Project_Settings\Startup_Code | 芯片启动源文件 |
32+
| linker_scripts | 生成模板工程\Project_Settings\Linker_Files | 芯片链接脚本(在board中) |
33+
34+
- 在补充完成后:
35+
36+
1. 编译,寻找缺失头文件,在`BaseNXP_TS_T40D34M50I0R0\include`目录下查找并放入目录`include`
37+
38+
2. 重复步骤 1 直到缺失的头文件无法在`BaseNXP_TS_T40D34M50I0R0\include`目录下找到,或者不在是头文件缺失错误
39+
40+
3. 删除`include` 目录下的`Mcal.h`,将工程中所有的 `#include "Mcal.h"`替换为`#include "S32K344.h"`
41+
42+
4. 在`ststem.h`头部添加:
43+
44+
```c
45+
#define OsIf_GetCoreID() Sys_GetCoreID()
46+
#define MCAL_DATA_SYNC_BARRIER() __asm__(" DSB")
47+
#define MCAL_INSTRUCTION_SYNC_BARRIER() __asm__(" ISB")
48+
```
49+
50+
5. 删除`exceptions.c`中的`PendSV_Handler`和`SysTick_Handler`实现。
51+
52+
6. 修改`startup_cm7.s`:`main`改为 RTT 入口`entry`,删除 `_start:`

bsp/nxp/S32K3/S32K344-core/.config

+288
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,288 @@
1+
2+
#
3+
# RT-Thread Kernel
4+
#
5+
CONFIG_RT_NAME_MAX=8
6+
# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
7+
# CONFIG_RT_USING_NANO is not set
8+
# CONFIG_RT_USING_AMP is not set
9+
# CONFIG_RT_USING_SMP is not set
10+
CONFIG_RT_CPUS_NR=1
11+
CONFIG_RT_ALIGN_SIZE=8
12+
# CONFIG_RT_THREAD_PRIORITY_8 is not set
13+
CONFIG_RT_THREAD_PRIORITY_32=y
14+
# CONFIG_RT_THREAD_PRIORITY_256 is not set
15+
CONFIG_RT_THREAD_PRIORITY_MAX=32
16+
CONFIG_RT_TICK_PER_SECOND=1000
17+
CONFIG_RT_USING_HOOK=y
18+
CONFIG_RT_HOOK_USING_FUNC_PTR=y
19+
# CONFIG_RT_USING_HOOKLIST is not set
20+
CONFIG_RT_USING_IDLE_HOOK=y
21+
CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
22+
CONFIG_IDLE_THREAD_STACK_SIZE=1024
23+
CONFIG_RT_USING_TIMER_SOFT=y
24+
CONFIG_RT_TIMER_THREAD_PRIO=4
25+
CONFIG_RT_TIMER_THREAD_STACK_SIZE=1024
26+
# CONFIG_RT_USING_TIMER_ALL_SOFT is not set
27+
# CONFIG_RT_USING_CPU_USAGE_TRACER is not set
28+
29+
#
30+
# kservice optimization
31+
#
32+
# CONFIG_RT_USING_TINY_FFS is not set
33+
# end of kservice optimization
34+
35+
#
36+
# klibc optimization
37+
#
38+
# CONFIG_RT_KLIBC_USING_STDLIB is not set
39+
# CONFIG_RT_KLIBC_USING_TINY_SIZE is not set
40+
# CONFIG_RT_KLIBC_USING_PRINTF_LONGLONG is not set
41+
# end of klibc optimization
42+
43+
CONFIG_RT_USING_DEBUG=y
44+
CONFIG_RT_DEBUGING_ASSERT=y
45+
CONFIG_RT_DEBUGING_COLOR=y
46+
CONFIG_RT_DEBUGING_CONTEXT=y
47+
# CONFIG_RT_DEBUGING_AUTO_INIT is not set
48+
CONFIG_RT_USING_OVERFLOW_CHECK=y
49+
50+
#
51+
# Inter-Thread communication
52+
#
53+
CONFIG_RT_USING_SEMAPHORE=y
54+
CONFIG_RT_USING_MUTEX=y
55+
CONFIG_RT_USING_EVENT=y
56+
CONFIG_RT_USING_MAILBOX=y
57+
CONFIG_RT_USING_MESSAGEQUEUE=y
58+
# CONFIG_RT_USING_MESSAGEQUEUE_PRIORITY is not set
59+
# CONFIG_RT_USING_SIGNALS is not set
60+
# end of Inter-Thread communication
61+
62+
#
63+
# Memory Management
64+
#
65+
CONFIG_RT_USING_MEMPOOL=y
66+
CONFIG_RT_USING_SMALL_MEM=y
67+
# CONFIG_RT_USING_SLAB is not set
68+
# CONFIG_RT_USING_MEMHEAP is not set
69+
CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
70+
# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
71+
# CONFIG_RT_USING_SLAB_AS_HEAP is not set
72+
# CONFIG_RT_USING_USERHEAP is not set
73+
# CONFIG_RT_USING_NOHEAP is not set
74+
# CONFIG_RT_USING_MEMTRACE is not set
75+
# CONFIG_RT_USING_HEAP_ISR is not set
76+
CONFIG_RT_USING_HEAP=y
77+
# end of Memory Management
78+
79+
CONFIG_RT_USING_DEVICE=y
80+
# CONFIG_RT_USING_DEVICE_OPS is not set
81+
# CONFIG_RT_USING_INTERRUPT_INFO is not set
82+
# CONFIG_RT_USING_THREADSAFE_PRINTF is not set
83+
# CONFIG_RT_USING_SCHED_THREAD_CTX is not set
84+
CONFIG_RT_USING_CONSOLE=y
85+
CONFIG_RT_CONSOLEBUF_SIZE=128
86+
CONFIG_RT_CONSOLE_DEVICE_NAME="uart3"
87+
CONFIG_RT_VER_NUM=0x50200
88+
# CONFIG_RT_USING_STDC_ATOMIC is not set
89+
CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32
90+
# end of RT-Thread Kernel
91+
92+
#
93+
# RT-Thread Components
94+
#
95+
CONFIG_RT_USING_COMPONENTS_INIT=y
96+
CONFIG_RT_USING_USER_MAIN=y
97+
CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
98+
CONFIG_RT_MAIN_THREAD_PRIORITY=10
99+
# CONFIG_RT_USING_LEGACY is not set
100+
CONFIG_RT_USING_MSH=y
101+
CONFIG_RT_USING_FINSH=y
102+
CONFIG_FINSH_USING_MSH=y
103+
CONFIG_FINSH_THREAD_NAME="tshell"
104+
CONFIG_FINSH_THREAD_PRIORITY=20
105+
CONFIG_FINSH_THREAD_STACK_SIZE=4096
106+
CONFIG_FINSH_USING_HISTORY=y
107+
CONFIG_FINSH_HISTORY_LINES=5
108+
CONFIG_FINSH_USING_SYMTAB=y
109+
CONFIG_FINSH_CMD_SIZE=80
110+
CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
111+
CONFIG_FINSH_USING_DESCRIPTION=y
112+
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
113+
# CONFIG_FINSH_USING_AUTH is not set
114+
CONFIG_FINSH_ARG_MAX=10
115+
CONFIG_FINSH_USING_OPTION_COMPLETION=y
116+
117+
#
118+
# DFS: device virtual file system
119+
#
120+
CONFIG_RT_USING_DFS=y
121+
CONFIG_DFS_USING_POSIX=y
122+
CONFIG_DFS_USING_WORKDIR=y
123+
# CONFIG_RT_USING_DFS_MNTTABLE is not set
124+
CONFIG_DFS_FD_MAX=16
125+
CONFIG_RT_USING_DFS_V1=y
126+
# CONFIG_RT_USING_DFS_V2 is not set
127+
CONFIG_DFS_FILESYSTEMS_MAX=4
128+
CONFIG_DFS_FILESYSTEM_TYPES_MAX=4
129+
# CONFIG_RT_USING_DFS_ELMFAT is not set
130+
CONFIG_RT_USING_DFS_DEVFS=y
131+
# CONFIG_RT_USING_DFS_ROMFS is not set
132+
# CONFIG_RT_USING_DFS_CROMFS is not set
133+
# CONFIG_RT_USING_DFS_RAMFS is not set
134+
# CONFIG_RT_USING_DFS_TMPFS is not set
135+
# CONFIG_RT_USING_DFS_MQUEUE is not set
136+
# end of DFS: device virtual file system
137+
138+
# CONFIG_RT_USING_FAL is not set
139+
140+
#
141+
# Device Drivers
142+
#
143+
# CONFIG_RT_USING_DM is not set
144+
# CONFIG_RT_USING_DEV_BUS is not set
145+
CONFIG_RT_USING_DEVICE_IPC=y
146+
CONFIG_RT_UNAMED_PIPE_NUMBER=64
147+
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
148+
CONFIG_RT_USING_SERIAL=y
149+
CONFIG_RT_USING_SERIAL_V1=y
150+
# CONFIG_RT_USING_SERIAL_V2 is not set
151+
CONFIG_RT_SERIAL_USING_DMA=y
152+
CONFIG_RT_SERIAL_RB_BUFSZ=64
153+
# CONFIG_RT_USING_CAN is not set
154+
# CONFIG_RT_USING_CPUTIME is not set
155+
# CONFIG_RT_USING_I2C is not set
156+
# CONFIG_RT_USING_PHY is not set
157+
# CONFIG_RT_USING_ADC is not set
158+
# CONFIG_RT_USING_DAC is not set
159+
# CONFIG_RT_USING_NULL is not set
160+
# CONFIG_RT_USING_ZERO is not set
161+
# CONFIG_RT_USING_RANDOM is not set
162+
# CONFIG_RT_USING_PWM is not set
163+
# CONFIG_RT_USING_PULSE_ENCODER is not set
164+
# CONFIG_RT_USING_INPUT_CAPTURE is not set
165+
# CONFIG_RT_USING_MTD_NOR is not set
166+
# CONFIG_RT_USING_MTD_NAND is not set
167+
# CONFIG_RT_USING_PM is not set
168+
# CONFIG_RT_USING_RTC is not set
169+
# CONFIG_RT_USING_SDIO is not set
170+
# CONFIG_RT_USING_SPI is not set
171+
# CONFIG_RT_USING_WDT is not set
172+
# CONFIG_RT_USING_AUDIO is not set
173+
# CONFIG_RT_USING_SENSOR is not set
174+
# CONFIG_RT_USING_TOUCH is not set
175+
# CONFIG_RT_USING_LCD is not set
176+
# CONFIG_RT_USING_HWCRYPTO is not set
177+
# CONFIG_RT_USING_WIFI is not set
178+
# CONFIG_RT_USING_VIRTIO is not set
179+
CONFIG_RT_USING_PIN=y
180+
# CONFIG_RT_USING_KTIME is not set
181+
# CONFIG_RT_USING_HWTIMER is not set
182+
# CONFIG_RT_USING_CHERRYUSB is not set
183+
# end of Device Drivers
184+
185+
#
186+
# C/C++ and POSIX layer
187+
#
188+
189+
#
190+
# ISO-ANSI C layer
191+
#
192+
193+
#
194+
# Timezone and Daylight Saving Time
195+
#
196+
# CONFIG_RT_LIBC_USING_FULL_TZ_DST is not set
197+
CONFIG_RT_LIBC_USING_LIGHT_TZ_DST=y
198+
CONFIG_RT_LIBC_TZ_DEFAULT_HOUR=8
199+
CONFIG_RT_LIBC_TZ_DEFAULT_MIN=0
200+
CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
201+
# end of Timezone and Daylight Saving Time
202+
# end of ISO-ANSI C layer
203+
204+
#
205+
# POSIX (Portable Operating System Interface) layer
206+
#
207+
# CONFIG_RT_USING_POSIX_FS is not set
208+
# CONFIG_RT_USING_POSIX_DELAY is not set
209+
# CONFIG_RT_USING_POSIX_CLOCK is not set
210+
# CONFIG_RT_USING_POSIX_TIMER is not set
211+
# CONFIG_RT_USING_PTHREADS is not set
212+
# CONFIG_RT_USING_MODULE is not set
213+
214+
#
215+
# Interprocess Communication (IPC)
216+
#
217+
# CONFIG_RT_USING_POSIX_PIPE is not set
218+
# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set
219+
# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set
220+
221+
#
222+
# Socket is in the 'Network' category
223+
#
224+
# end of Interprocess Communication (IPC)
225+
# end of POSIX (Portable Operating System Interface) layer
226+
227+
# CONFIG_RT_USING_CPLUSPLUS is not set
228+
# end of C/C++ and POSIX layer
229+
230+
#
231+
# Network
232+
#
233+
# CONFIG_RT_USING_SAL is not set
234+
# CONFIG_RT_USING_NETDEV is not set
235+
# CONFIG_RT_USING_LWIP is not set
236+
# CONFIG_RT_USING_AT is not set
237+
# end of Network
238+
239+
#
240+
# Memory protection
241+
#
242+
# CONFIG_RT_USING_MEM_PROTECTION is not set
243+
# CONFIG_RT_USING_HW_STACK_GUARD is not set
244+
# end of Memory protection
245+
246+
#
247+
# Utilities
248+
#
249+
# CONFIG_RT_USING_RYM is not set
250+
# CONFIG_RT_USING_ULOG is not set
251+
# CONFIG_RT_USING_UTEST is not set
252+
# CONFIG_RT_USING_VAR_EXPORT is not set
253+
# CONFIG_RT_USING_RESOURCE_ID is not set
254+
# CONFIG_RT_USING_ADT is not set
255+
# CONFIG_RT_USING_RT_LINK is not set
256+
# end of Utilities
257+
258+
# CONFIG_RT_USING_VBUS is not set
259+
260+
#
261+
# Using USB legacy version
262+
#
263+
# CONFIG_RT_USING_USB_HOST is not set
264+
# CONFIG_RT_USING_USB_DEVICE is not set
265+
# end of Using USB legacy version
266+
267+
# CONFIG_RT_USING_FDT is not set
268+
# end of RT-Thread Components
269+
270+
#
271+
# RT-Thread Utestcases
272+
#
273+
# CONFIG_RT_USING_UTESTCASES is not set
274+
# end of RT-Thread Utestcases
275+
276+
#
277+
# Hardware Drivers Config
278+
#
279+
CONFIG_CPU_S32K344=y
280+
CONFIG_BSP_USING_SHELL_TO_USART=y
281+
282+
#
283+
# On-chip Peripheral Drivers
284+
#
285+
CONFIG_BSP_USING_UART=y
286+
CONFIG_BSP_USING_UART3=y
287+
# end of On-chip Peripheral Drivers
288+
# end of Hardware Drivers Config

bsp/nxp/S32K3/S32K344-core/.gitignore

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
board/linker_scripts/*.ld
2+
libraries/s32k344_SDK/**/*.c
3+
libraries/s32k344_SDK/**/*.s
4+
libraries/s32k344_SDK/**/*.h
5+
libraries/s32k344_SDK/**/*.svd

bsp/nxp/S32K3/S32K344-core/Kconfig

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
mainmenu "RT-Thread Configuration"
2+
3+
BSP_DIR := .
4+
5+
RTT_DIR := ../../../..
6+
7+
PKGS_DIR := packages
8+
9+
source "$(RTT_DIR)/Kconfig"
10+
osource "$PKGS_DIR/Kconfig"
11+
rsource "libraries/Kconfig"
12+
rsource "board/Kconfig"
13+

bsp/nxp/S32K3/S32K344-core/SConscript

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# for module compiling
2+
import os
3+
Import('RTT_ROOT')
4+
from building import *
5+
6+
cwd = GetCurrentDir()
7+
objs = []
8+
list = os.listdir(cwd)
9+
10+
for d in list:
11+
path = os.path.join(cwd, d)
12+
if os.path.isfile(os.path.join(path, 'SConscript')):
13+
objs = objs + SConscript(os.path.join(d, 'SConscript'))
14+
15+
Return('objs')

0 commit comments

Comments
 (0)