Skip to content

Commit 4f847ac

Browse files
committed
Add more files and prelim build in CI
1 parent e47e69b commit 4f847ac

10 files changed

Lines changed: 529 additions & 10 deletions

File tree

.github/workflows/real-time-cpp.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ jobs:
213213
strategy:
214214
fail-fast: false
215215
matrix:
216-
suite: [ riscvfe310, wch_ch32v307 ]
216+
suite: [ riscvfe310, wch_ch32v307, xtensa_esp32_s3_riscv_cop ]
217217
steps:
218218
- uses: actions/checkout@v4
219219
with:

ref_app/target.vcxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,6 +1040,8 @@
10401040
<None Include="target\micros\xtensa_esp32_s3_riscv_cop\make\xtensa_esp32_s3_riscv_cop.ld" />
10411041
<None Include="target\micros\xtensa_esp32_s3_riscv_cop\make\xtensa_esp32_s3_riscv_cop_files.gmk" />
10421042
<None Include="target\micros\xtensa_esp32_s3_riscv_cop\make\xtensa_esp32_s3_riscv_cop_flags.gmk" />
1043+
<None Include="target\micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup\boot.S" />
1044+
<None Include="target\micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup\IntVectTable.S" />
10431045
</ItemGroup>
10441046
<ItemGroup>
10451047
<ClCompile Include="target\micros\am335x\startup\crt0.cpp" />
@@ -1144,12 +1146,14 @@
11441146
<ClCompile Include="target\micros\xtensa_esp32_s3\startup\crt0_init_ram.cpp" />
11451147
<ClCompile Include="target\micros\xtensa_esp32_s3\startup\crt1.cpp" />
11461148
<ClCompile Include="target\micros\xtensa_esp32_s3\startup\Std\StdLib.cpp" />
1149+
<ClCompile Include="target\micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup\Startup.c" />
11471150
</ItemGroup>
11481151
<ItemGroup>
11491152
<Text Include="target\micros\bcm2835_raspi_b\startup\SD_CARD\PiZero\config.txt" />
11501153
</ItemGroup>
11511154
<ItemGroup>
11521155
<ClInclude Include="target\micros\xtensa_esp32_s3\startup\Std\core-isa.h" />
1156+
<ClInclude Include="target\micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup\custom_ops.h" />
11531157
</ItemGroup>
11541158
<ItemGroup>
11551159
<Library Include="target\micros\xtensa_esp32_s3\startup\Std\lib_call0_abi\libc_call0_abi.a" />

ref_app/target.vcxproj.filters

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,18 @@
283283
<Filter Include="micros\xtensa_esp32_s3_riscv_cop">
284284
<UniqueIdentifier>{d85fd616-0c1e-4254-bcba-6cf308b63dff}</UniqueIdentifier>
285285
</Filter>
286+
<Filter Include="micros\xtensa_esp32_s3_riscv_cop\make">
287+
<UniqueIdentifier>{884fecba-24b2-4059-8063-3a7c56c0cadf}</UniqueIdentifier>
288+
</Filter>
289+
<Filter Include="micros\xtensa_esp32_s3_riscv_cop\startup">
290+
<UniqueIdentifier>{a71738e7-0c88-4bb9-a1bd-3a5ffd125490}</UniqueIdentifier>
291+
</Filter>
292+
<Filter Include="micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk">
293+
<UniqueIdentifier>{bb1fed00-c4cd-4e52-833d-16cf0f69bc10}</UniqueIdentifier>
294+
</Filter>
295+
<Filter Include="micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup">
296+
<UniqueIdentifier>{66ae9aa3-915d-4366-9492-87cdb30add93}</UniqueIdentifier>
297+
</Filter>
286298
</ItemGroup>
287299
<ItemGroup>
288300
<None Include="target\app\make\app_files.gmk">
@@ -654,14 +666,20 @@
654666
<None Include="target\micros\xtensa_esp32_s3\make\xtensa_esp32_s3_flags_extra.gmk">
655667
<Filter>micros\xtensa_esp32_s3\make</Filter>
656668
</None>
657-
<None Include="target\micros\xtensa_esp32_s3_riscv_cop\make\xtensa_esp32_s3_riscv_cop_flags.gmk">
658-
<Filter>micros\xtensa_esp32_s3_riscv_cop</Filter>
659-
</None>
660669
<None Include="target\micros\xtensa_esp32_s3_riscv_cop\make\xtensa_esp32_s3_riscv_cop.ld">
661-
<Filter>micros\xtensa_esp32_s3_riscv_cop</Filter>
670+
<Filter>micros\xtensa_esp32_s3_riscv_cop\make</Filter>
662671
</None>
663672
<None Include="target\micros\xtensa_esp32_s3_riscv_cop\make\xtensa_esp32_s3_riscv_cop_files.gmk">
664-
<Filter>micros\xtensa_esp32_s3_riscv_cop</Filter>
673+
<Filter>micros\xtensa_esp32_s3_riscv_cop\make</Filter>
674+
</None>
675+
<None Include="target\micros\xtensa_esp32_s3_riscv_cop\make\xtensa_esp32_s3_riscv_cop_flags.gmk">
676+
<Filter>micros\xtensa_esp32_s3_riscv_cop\make</Filter>
677+
</None>
678+
<None Include="target\micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup\boot.S">
679+
<Filter>micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup</Filter>
680+
</None>
681+
<None Include="target\micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup\IntVectTable.S">
682+
<Filter>micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup</Filter>
665683
</None>
666684
</ItemGroup>
667685
<ItemGroup>
@@ -971,6 +989,9 @@
971989
<ClCompile Include="target\micros\xtensa_esp32_s3\startup\Std\StdLib.cpp">
972990
<Filter>micros\xtensa_esp32_s3\startup\Std</Filter>
973991
</ClCompile>
992+
<ClCompile Include="target\micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup\Startup.c">
993+
<Filter>micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup</Filter>
994+
</ClCompile>
974995
</ItemGroup>
975996
<ItemGroup>
976997
<Text Include="target\micros\bcm2835_raspi_b\startup\SD_CARD\PiZero\config.txt">
@@ -981,6 +1002,9 @@
9811002
<ClInclude Include="target\micros\xtensa_esp32_s3\startup\Std\core-isa.h">
9821003
<Filter>micros\xtensa_esp32_s3\startup\Std</Filter>
9831004
</ClInclude>
1005+
<ClInclude Include="target\micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup\custom_ops.h">
1006+
<Filter>micros\xtensa_esp32_s3_riscv_cop\startup\from_no_sdk\Startup</Filter>
1007+
</ClInclude>
9841008
</ItemGroup>
9851009
<ItemGroup>
9861010
<Library Include="target\micros\xtensa_esp32_s3\startup\Std\lib_call0_abi\libc_call0_abi.a">

ref_app/target/micros/xtensa_esp32_s3/make/xtensa_esp32_s3_files.gmk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#
2-
# Copyright Christopher Kormanyos 2018 - 2025.
2+
# Copyright Christopher Kormanyos 2025.
33
# Distributed under the Boost Software License,
44
# Version 1.0. (See accompanying file LICENSE_1_0.txt
55
# or copy at http://www.boost.org/LICENSE_1_0.txt)
66
#
77

88
# ------------------------------------------------------------------------------
9-
# File list of the xtensa32 esspressif ESP32 files in the project
9+
# File list of the ESP32-S3 files in the project
1010
# ------------------------------------------------------------------------------
1111

1212
FILES_TGT := $(PATH_APP)/mcal/mcal_gcc_cxx_completion \

ref_app/target/micros/xtensa_esp32_s3_riscv_cop/make/xtensa_esp32_s3_riscv_cop_files.gmk

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
#
77

88
# ------------------------------------------------------------------------------
9-
# File list of the xtensa32 esspressif ESP32 files in the project
9+
# File list of the ESP32-S3 RISC-V coprocessor files in the project
1010
# ------------------------------------------------------------------------------
1111

12-
FILES_TGT := $(PATH_APP)/mcal/mcal_gcc_cxx_completion
12+
FILES_TGT := $(PATH_APP)/mcal/mcal_gcc_cxx_completion \
13+
$(PATH_TGT)/startup/from_no_sdk/Startup/boot \
14+
$(PATH_TGT)/startup/from_no_sdk/Startup/IntVectTable \
15+
$(PATH_TGT)/startup/from_no_sdk/Startup/Startup

ref_app/target/micros/xtensa_esp32_s3_riscv_cop/make/xtensa_esp32_s3_riscv_cop_flags.gmk

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,25 @@ TGT_LDFLAGS = -nostdlib \
4242
$(TGT_ALLFLAGS) \
4343
--specs=nano.specs \
4444
--specs=nosys.specs
45+
46+
47+
# ------------------------------------------------------------------------------
48+
# Rule to assemble source file (*.S) to object file (*.o).
49+
# ------------------------------------------------------------------------------
50+
51+
ifeq ($(TYP_OS),WIN)
52+
TGT_GCC := $(PATH_TOOLS_CC)/$(GCC_PREFIX)-gcc.exe
53+
TGT_GCC := $(subst /,\,$(TGT_GCC))
54+
else
55+
TGT_GCC := $(GCC_PREFIX)-gcc
56+
endif
57+
58+
$(PATH_OBJ)/%.o : %.S
59+
@$(ECHO) +++ assemble for esp32s3 riscv cop: $< to $@
60+
# Assemble the source file,
61+
# ...and reformat (using sed) any possible error/warning messages
62+
# for the VisualStudio(R) output window,
63+
# ...and create an assembly listing using objdump
64+
@-$(CC) $(TGT_ALLFLAGS) $(C_INCLUDES) $< -c -o $(PATH_OBJ)/$(basename $(@F)).o 2> $(PATH_ERR)/$(basename $(@F)).err
65+
@-$(SED) -e 's|:\([0-9]*\):|(\1) :|' $(PATH_ERR)/$(basename $(@F)).err
66+
@-$(OBJDUMP) -S $(PATH_OBJ)/$(basename $(@F)).o > $(PATH_LST)/$(basename $(@F)).lst
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
/******************************************************************************************
2+
Filename : IntVectTable.S
3+
4+
Core : RISC-V
5+
6+
MCU : ESP32-S3
7+
8+
Author : Chalandi Amine
9+
10+
Owner : Chalandi Amine
11+
12+
Date : 22.02.2025
13+
14+
Description : interrupt vector table implementation for ULP-RISC-V Co-processor
15+
16+
******************************************************************************************/
17+
18+
#include "custom_ops.h"
19+
20+
/*******************************************************************************************
21+
\brief
22+
23+
\param
24+
25+
\return
26+
********************************************************************************************/
27+
.section .vector
28+
.type _InterruptVectorTable, @function
29+
.align 4
30+
.extern _IRQ_VECTORS
31+
.globl _InterruptVectorTable
32+
33+
_InterruptVectorTable:
34+
/* reset vector */
35+
j _start
36+
37+
/* irq vector */
38+
.org _InterruptVectorTable + 0x10
39+
j _IRQ_VECTORS
40+
41+
.size _InterruptVectorTable, .-_InterruptVectorTable
42+
43+
/*******************************************************************************************
44+
\brief
45+
46+
\param
47+
48+
\return
49+
********************************************************************************************/
50+
.section .text
51+
.type _IRQ_VECTORS, @function
52+
.align 4
53+
.extern irq_vector
54+
.globl _IRQ_VECTORS
55+
56+
57+
_IRQ_VECTORS:
58+
addi sp, sp, -(17*4)
59+
sw ra, 0(sp)
60+
sw tp, 4(sp)
61+
sw t0, 8(sp)
62+
sw t1, 12(sp)
63+
sw t2, 16(sp)
64+
sw a0, 20(sp)
65+
sw a1, 24(sp)
66+
sw a2, 28(sp)
67+
sw a3, 32(sp)
68+
sw a4, 36(sp)
69+
sw a5, 40(sp)
70+
sw a6, 44(sp)
71+
sw a7, 48(sp)
72+
sw t3, 52(sp)
73+
sw t4, 56(sp)
74+
sw t5, 60(sp)
75+
sw t6, 64(sp)
76+
picorv32_getq_insn(a0,q1)
77+
jal irq_vector
78+
lw ra, 0(sp)
79+
lw tp, 4(sp)
80+
lw t0, 8(sp)
81+
lw t1, 12(sp)
82+
lw t2, 16(sp)
83+
lw a0, 20(sp)
84+
lw a1, 24(sp)
85+
lw a2, 28(sp)
86+
lw a3, 32(sp)
87+
lw a4, 36(sp)
88+
lw a5, 40(sp)
89+
lw a6, 44(sp)
90+
lw a7, 48(sp)
91+
lw t3, 52(sp)
92+
lw t4, 56(sp)
93+
lw t5, 60(sp)
94+
lw t6, 64(sp)
95+
addi sp,sp, (17*4)
96+
picorv32_retirq_insn()
97+
98+
99+
.size _IRQ_VECTORS, .-_IRQ_VECTORS
100+
101+
/*******************************************************************************************
102+
\brief
103+
104+
\param
105+
106+
\return
107+
********************************************************************************************/
108+
.section .text
109+
.type set_timer_counter, @function
110+
.align 4
111+
.globl set_timer_counter
112+
113+
set_timer_counter:
114+
/* custom instruction to set the timer counter */
115+
picorv32_timer_insn(zero, a0)
116+
ret
117+
118+
.size set_timer_counter, .-set_timer_counter

0 commit comments

Comments
 (0)