Skip to content

Commit 52a66cc

Browse files
authored
Merge pull request #4756 from Guozhanxin/ac6
[src][memheap]Fix the crash problem after opening Oz optimization on ac6.
2 parents 79c1ae3 + 51ec75f commit 52a66cc

File tree

8 files changed

+465
-35
lines changed

8 files changed

+465
-35
lines changed

.github/workflows/action_utest.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
fail-fast: false
1212
matrix:
1313
legs:
14-
- {UTEST: "kernel/ipc", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "vexpress-a9", CONFIG_FILE: "examples/utest/configs/utest_self/config.h"}
14+
- {UTEST: "kernel/mem", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "vexpress-a9", CONFIG_FILE: "examples/utest/configs/kernel/config.h"}
1515
- {UTEST: "components/utest", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "vexpress-a9", CONFIG_FILE: "examples/utest/configs/utest_self/config.h"}
1616

1717
env:
Lines changed: 304 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,304 @@
1+
#ifndef RT_CONFIG_H__
2+
#define RT_CONFIG_H__
3+
4+
/* Automatically generated file; DO NOT EDIT. */
5+
/* RT-Thread Project Configuration */
6+
7+
/* RT-Thread Kernel */
8+
9+
#define RT_NAME_MAX 8
10+
#define RT_USING_SMP
11+
#define RT_CPUS_NR 2
12+
#define RT_ALIGN_SIZE 4
13+
#define RT_THREAD_PRIORITY_32
14+
#define RT_THREAD_PRIORITY_MAX 32
15+
#define RT_TICK_PER_SECOND 100
16+
#define RT_USING_OVERFLOW_CHECK
17+
#define RT_USING_HOOK
18+
#define RT_USING_IDLE_HOOK
19+
#define RT_IDLE_HOOK_LIST_SIZE 4
20+
#define IDLE_THREAD_STACK_SIZE 1024
21+
#define RT_USING_TIMER_SOFT
22+
#define RT_TIMER_THREAD_PRIO 4
23+
#define RT_TIMER_THREAD_STACK_SIZE 1024
24+
25+
/* kservice optimization */
26+
27+
#define RT_DEBUG
28+
#define RT_DEBUG_COLOR
29+
30+
/* Inter-Thread communication */
31+
32+
#define RT_USING_SEMAPHORE
33+
#define RT_USING_MUTEX
34+
#define RT_USING_EVENT
35+
#define RT_USING_MAILBOX
36+
#define RT_USING_MESSAGEQUEUE
37+
#define RT_USING_SIGNALS
38+
39+
/* Memory Management */
40+
41+
#define RT_USING_MEMPOOL
42+
#define RT_USING_MEMHEAP
43+
#define RT_USING_SMALL_MEM
44+
#define RT_USING_MEMTRACE
45+
#define RT_USING_HEAP
46+
47+
/* Kernel Device Object */
48+
49+
#define RT_USING_DEVICE
50+
#define RT_USING_DEVICE_OPS
51+
#define RT_USING_INTERRUPT_INFO
52+
#define RT_USING_CONSOLE
53+
#define RT_CONSOLEBUF_SIZE 256
54+
#define RT_CONSOLE_DEVICE_NAME "uart0"
55+
#define RT_VER_NUM 0x40004
56+
#define ARCH_ARM
57+
#define RT_USING_CPU_FFS
58+
#define ARCH_ARM_CORTEX_A
59+
#define RT_USING_GIC_V2
60+
#define ARCH_ARM_CORTEX_A9
61+
62+
/* RT-Thread Components */
63+
64+
#define RT_USING_COMPONENTS_INIT
65+
#define RT_USING_USER_MAIN
66+
#define RT_MAIN_THREAD_STACK_SIZE 2048
67+
#define RT_MAIN_THREAD_PRIORITY 10
68+
69+
/* C++ features */
70+
71+
#define RT_USING_CPLUSPLUS
72+
73+
/* Command shell */
74+
75+
#define RT_USING_FINSH
76+
#define FINSH_THREAD_NAME "tshell"
77+
#define FINSH_USING_HISTORY
78+
#define FINSH_HISTORY_LINES 5
79+
#define FINSH_USING_SYMTAB
80+
#define FINSH_USING_DESCRIPTION
81+
#define FINSH_THREAD_PRIORITY 20
82+
#define FINSH_THREAD_STACK_SIZE 4096
83+
#define FINSH_CMD_SIZE 80
84+
#define FINSH_USING_MSH
85+
#define FINSH_USING_MSH_DEFAULT
86+
#define FINSH_ARG_MAX 10
87+
88+
/* Device virtual file system */
89+
90+
#define RT_USING_DFS
91+
#define DFS_USING_WORKDIR
92+
#define DFS_FILESYSTEMS_MAX 4
93+
#define DFS_FILESYSTEM_TYPES_MAX 8
94+
#define DFS_FD_MAX 32
95+
#define RT_USING_DFS_ELMFAT
96+
97+
/* elm-chan's FatFs, Generic FAT Filesystem Module */
98+
99+
#define RT_DFS_ELM_CODE_PAGE 437
100+
#define RT_DFS_ELM_WORD_ACCESS
101+
#define RT_DFS_ELM_USE_LFN_3
102+
#define RT_DFS_ELM_USE_LFN 3
103+
#define RT_DFS_ELM_LFN_UNICODE_0
104+
#define RT_DFS_ELM_LFN_UNICODE 0
105+
#define RT_DFS_ELM_MAX_LFN 255
106+
#define RT_DFS_ELM_DRIVES 2
107+
#define RT_DFS_ELM_MAX_SECTOR_SIZE 4096
108+
#define RT_DFS_ELM_REENTRANT
109+
#define RT_USING_DFS_DEVFS
110+
#define RT_USING_DFS_ROMFS
111+
#define RT_USING_DFS_RAMFS
112+
113+
/* Device Drivers */
114+
115+
#define RT_USING_DEVICE_IPC
116+
#define RT_PIPE_BUFSZ 512
117+
#define RT_USING_SYSTEM_WORKQUEUE
118+
#define RT_SYSTEM_WORKQUEUE_STACKSIZE 2048
119+
#define RT_SYSTEM_WORKQUEUE_PRIORITY 23
120+
#define RT_USING_SERIAL
121+
#define RT_SERIAL_USING_DMA
122+
#define RT_SERIAL_RB_BUFSZ 64
123+
#define RT_USING_I2C
124+
#define RT_USING_I2C_BITOPS
125+
#define RT_USING_PIN
126+
#define RT_USING_MTD_NOR
127+
#define RT_USING_MTD_NAND
128+
#define RT_MTD_NAND_DEBUG
129+
#define RT_USING_RTC
130+
#define RT_USING_SOFT_RTC
131+
#define RT_USING_SDIO
132+
#define RT_SDIO_STACK_SIZE 512
133+
#define RT_SDIO_THREAD_PRIORITY 15
134+
#define RT_MMCSD_STACK_SIZE 1024
135+
#define RT_MMCSD_THREAD_PREORITY 22
136+
#define RT_MMCSD_MAX_PARTITION 16
137+
#define RT_USING_SPI
138+
#define RT_USING_SPI_MSD
139+
#define RT_USING_SFUD
140+
#define RT_SFUD_USING_SFDP
141+
#define RT_SFUD_USING_FLASH_INFO_TABLE
142+
#define RT_SFUD_SPI_MAX_HZ 50000000
143+
#define RT_USING_WDT
144+
145+
/* Using USB */
146+
147+
148+
/* POSIX layer and C standard library */
149+
150+
#define RT_USING_LIBC
151+
#define RT_USING_PTHREADS
152+
#define PTHREAD_NUM_MAX 8
153+
#define RT_USING_POSIX
154+
#define RT_USING_POSIX_MMAP
155+
#define RT_USING_POSIX_TERMIOS
156+
#define RT_USING_POSIX_GETLINE
157+
#define RT_USING_POSIX_AIO
158+
#define RT_LIBC_FIXED_TIMEZONE 8
159+
160+
/* Network */
161+
162+
/* Socket abstraction layer */
163+
164+
#define RT_USING_SAL
165+
#define SAL_INTERNET_CHECK
166+
167+
/* protocol stack implement */
168+
169+
#define SAL_USING_LWIP
170+
#define SAL_USING_POSIX
171+
172+
/* Network interface device */
173+
174+
#define RT_USING_NETDEV
175+
#define NETDEV_USING_IFCONFIG
176+
#define NETDEV_USING_PING
177+
#define NETDEV_USING_NETSTAT
178+
#define NETDEV_USING_AUTO_DEFAULT
179+
#define NETDEV_IPV4 1
180+
#define NETDEV_IPV6 0
181+
182+
/* light weight TCP/IP stack */
183+
184+
#define RT_USING_LWIP
185+
#define RT_USING_LWIP202
186+
#define RT_LWIP_MEM_ALIGNMENT 4
187+
#define RT_LWIP_ICMP
188+
#define RT_LWIP_DNS
189+
#define RT_LWIP_DHCP
190+
#define IP_SOF_BROADCAST 1
191+
#define IP_SOF_BROADCAST_RECV 1
192+
193+
/* Static IPv4 Address */
194+
195+
#define RT_LWIP_IPADDR "192.168.1.30"
196+
#define RT_LWIP_GWADDR "192.168.1.1"
197+
#define RT_LWIP_MSKADDR "255.255.255.0"
198+
#define RT_LWIP_UDP
199+
#define RT_LWIP_TCP
200+
#define RT_LWIP_RAW
201+
#define RT_MEMP_NUM_NETCONN 8
202+
#define RT_LWIP_PBUF_NUM 16
203+
#define RT_LWIP_RAW_PCB_NUM 4
204+
#define RT_LWIP_UDP_PCB_NUM 4
205+
#define RT_LWIP_TCP_PCB_NUM 4
206+
#define RT_LWIP_TCP_SEG_NUM 40
207+
#define RT_LWIP_TCP_SND_BUF 8196
208+
#define RT_LWIP_TCP_WND 8196
209+
#define RT_LWIP_TCPTHREAD_PRIORITY 10
210+
#define RT_LWIP_TCPTHREAD_MBOX_SIZE 8
211+
#define RT_LWIP_TCPTHREAD_STACKSIZE 1024
212+
#define RT_LWIP_ETHTHREAD_PRIORITY 12
213+
#define RT_LWIP_ETHTHREAD_STACKSIZE 1024
214+
#define RT_LWIP_ETHTHREAD_MBOX_SIZE 8
215+
#define RT_LWIP_REASSEMBLY_FRAG
216+
#define LWIP_NETIF_STATUS_CALLBACK 1
217+
#define LWIP_NETIF_LINK_CALLBACK 1
218+
#define SO_REUSE 1
219+
#define LWIP_SO_RCVTIMEO 1
220+
#define LWIP_SO_SNDTIMEO 1
221+
#define LWIP_SO_RCVBUF 1
222+
#define LWIP_SO_LINGER 0
223+
#define LWIP_NETIF_LOOPBACK 0
224+
#define RT_LWIP_USING_PING
225+
226+
/* AT commands */
227+
228+
229+
/* VBUS(Virtual Software BUS) */
230+
231+
232+
/* Utilities */
233+
234+
#define RT_USING_UTEST
235+
#define UTEST_THR_STACK_SIZE 4096
236+
#define UTEST_THR_PRIORITY 20
237+
#define RT_USING_LWP
238+
239+
/* RT-Thread Utestcases */
240+
241+
#define RT_USING_UTESTCASES
242+
243+
/* Utest Self Testcase */
244+
245+
#define UTEST_SELF_PASS_TC
246+
247+
/* Kernel memheap stability Testcase */
248+
249+
#define UTEST_MEMHEAP_TC
250+
251+
/* RT-Thread online packages */
252+
253+
/* IoT - internet of things */
254+
255+
256+
/* Wi-Fi */
257+
258+
/* Marvell WiFi */
259+
260+
261+
/* Wiced WiFi */
262+
263+
264+
/* IoT Cloud */
265+
266+
267+
/* security packages */
268+
269+
270+
/* language packages */
271+
272+
273+
/* multimedia packages */
274+
275+
276+
/* tools packages */
277+
278+
279+
/* system packages */
280+
281+
282+
/* Micrium: Micrium software products porting for RT-Thread */
283+
284+
285+
/* peripheral libraries and drivers */
286+
287+
288+
/* AI packages */
289+
290+
291+
/* miscellaneous packages */
292+
293+
294+
/* samples: kernel and components samples */
295+
296+
297+
/* entertainment: terminal games and other interesting software packages */
298+
299+
#define SOC_VEXPRESS_A9
300+
#define RT_USING_UART0
301+
#define RT_USING_UART1
302+
#define BSP_DRV_EMAC
303+
304+
#endif

examples/utest/testcases/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ config RT_USING_UTESTCASES
88
if RT_USING_UTESTCASES
99

1010
source "$RTT_DIR/examples/utest/testcases/utest/Kconfig"
11+
source "$RTT_DIR/examples/utest/testcases/kernel/Kconfig"
1112

1213
endif
1314

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
menu "Kernel Testcase"
2+
3+
config UTEST_MEMHEAP_TC
4+
bool "memheap stability test"
5+
default y
6+
depends on RT_USING_MEMHEAP
7+
8+
endmenu
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Import('rtconfig')
2+
from building import *
3+
4+
cwd = GetCurrentDir()
5+
src = Split('''
6+
''')
7+
8+
if GetDepend(['UTEST_MEMHEAP_TC']):
9+
src += ['memheap_tc.c']
10+
11+
CPPPATH = [cwd]
12+
13+
group = DefineGroup('utestcases', src, depend = [], CPPPATH = CPPPATH)
14+
15+
Return('group')

0 commit comments

Comments
 (0)