Skip to content

Commit 425e2fb

Browse files
authored
Merge pull request #623 from ckormanyos/esp32s3_riscv_cop
Fix #621 via Esp32s3 riscv cop
2 parents ae67311 + 91122fe commit 425e2fb

50 files changed

Lines changed: 41095 additions & 70 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.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:

readme.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -403,11 +403,13 @@ features a bare-metal startup _without_ using any of the SDK.
403403
The bare-metal startup was taken from the work of
404404
[Chalandi/Baremetal_esp32s3_nosdk](https://github.com/Chalandi/Baremetal_esp32s3_nosdk).
405405
The dual-core system first boots core0 which subsequently
406-
starts up core1. Blinky runs in the standard `ref_app`
406+
starts up core1 and also starts up the RISC-V coprocessor core.
407+
Blinky runs in the standard `ref_app`
407408
on core0 toggling `port7` while an endless timer loop on core1
408409
toggles `port6`. The LED ports togle in near unison at $\frac{1}{2}~\text{Hz}$.
409410
Self-procured LEDs and resistors need to be fitted in order to observe
410-
blinky on this particular board.
411+
blinky on this particular board. The RISC-V coprocessor
412+
toggles `port17` at a randomly selected frequency of $\sim\frac{2}{3}~\text{Hz}$.
411413

412414
The NXP(R) OM13093 LPC11C24 board ARM(R) Cortex(R)-M0+ configuration
413415
called `target lpc11c24` toggles the LED on `port0.8`.

ref_app/ref_app.sln

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ Global
7070
target wch_ch32v307_llvm|x64 = target wch_ch32v307_llvm|x64
7171
target wch_ch32v307|x64 = target wch_ch32v307|x64
7272
target x86_64-w64-mingw32|x64 = target x86_64-w64-mingw32|x64
73+
target xtensa_esp32_s3_riscv_cop|x64 = target xtensa_esp32_s3_riscv_cop|x64
7374
target xtensa_esp32_s3|x64 = target xtensa_esp32_s3|x64
7475
target xtensa32|x64 = target xtensa32|x64
7576
EndGlobalSection
@@ -102,6 +103,7 @@ Global
102103
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target wch_ch32v307_llvm|x64.ActiveCfg = Release|x64
103104
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target wch_ch32v307|x64.ActiveCfg = Release|x64
104105
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target x86_64-w64-mingw32|x64.ActiveCfg = Release|x64
106+
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target xtensa_esp32_s3_riscv_cop|x64.ActiveCfg = Release|x64
105107
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target xtensa_esp32_s3|x64.ActiveCfg = Release|x64
106108
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target xtensa32|x64.ActiveCfg = Release|x64
107109
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.Debug|x64.ActiveCfg = target avr|x64
@@ -154,6 +156,8 @@ Global
154156
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target wch_ch32v307|x64.Build.0 = target wch_ch32v307|x64
155157
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target x86_64-w64-mingw32|x64.ActiveCfg = target x86_64-w64-mingw32|x64
156158
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target x86_64-w64-mingw32|x64.Build.0 = target x86_64-w64-mingw32|x64
159+
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target xtensa_esp32_s3_riscv_cop|x64.ActiveCfg = target xtensa_esp32_s3_riscv_cop|x64
160+
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target xtensa_esp32_s3_riscv_cop|x64.Build.0 = target xtensa_esp32_s3_riscv_cop|x64
157161
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target xtensa_esp32_s3|x64.ActiveCfg = target xtensa_esp32_s3|x64
158162
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target xtensa_esp32_s3|x64.Build.0 = target xtensa_esp32_s3|x64
159163
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target xtensa32|x64.ActiveCfg = target xtensa32|x64

ref_app/ref_app.vcxproj

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1317,6 +1317,46 @@
13171317
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
13181318
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
13191319
</ClCompile>
1320+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_cpu.cpp">
1321+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1322+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1323+
</ClCompile>
1324+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_eep.cpp">
1325+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1326+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1327+
</ClCompile>
1328+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_gpt.cpp">
1329+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1330+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1331+
</ClCompile>
1332+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_irq.cpp">
1333+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1334+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1335+
</ClCompile>
1336+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_led.cpp">
1337+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1338+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1339+
</ClCompile>
1340+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_osc.cpp">
1341+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1342+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1343+
</ClCompile>
1344+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_port.cpp">
1345+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1346+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1347+
</ClCompile>
1348+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_pwm.cpp">
1349+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1350+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1351+
</ClCompile>
1352+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_spi.cpp">
1353+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1354+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1355+
</ClCompile>
1356+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_wdg.cpp">
1357+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1358+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1359+
</ClCompile>
13201360
<ClCompile Include="src\os\os.cpp" />
13211361
<ClCompile Include="src\sys\idle\sys_idle.cpp" />
13221362
<ClCompile Include="src\sys\mon\sys_mon.cpp" />
@@ -2956,6 +2996,62 @@
29562996
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
29572997
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
29582998
</ClInclude>
2999+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_benchmark.h">
3000+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3001+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3002+
</ClInclude>
3003+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_cpu.h">
3004+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3005+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3006+
</ClInclude>
3007+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_eep.h">
3008+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3009+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3010+
</ClInclude>
3011+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_gpt.h">
3012+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3013+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3014+
</ClInclude>
3015+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_irq.h">
3016+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3017+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3018+
</ClInclude>
3019+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_led.h">
3020+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3021+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3022+
</ClInclude>
3023+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_memory_progmem.h">
3024+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3025+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3026+
</ClInclude>
3027+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_osc.h">
3028+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3029+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3030+
</ClInclude>
3031+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_port.h">
3032+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3033+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3034+
</ClInclude>
3035+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_pwm.h">
3036+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3037+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3038+
</ClInclude>
3039+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_reg.h">
3040+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3041+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3042+
</ClInclude>
3043+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_ser.h">
3044+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3045+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3046+
</ClInclude>
3047+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_spi.h">
3048+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3049+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3050+
</ClInclude>
3051+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_wdg.h">
3052+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
3053+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
3054+
</ClInclude>
29593055
<ClInclude Include="src\mcal_lcd\mcal_lcd_base.h" />
29603056
<ClInclude Include="src\mcal_lcd\mcal_lcd_buffered_instance.h" />
29613057
<ClInclude Include="src\mcal_lcd\mcal_lcd_console.h" />

ref_app/ref_app.vcxproj.filters

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,9 @@
230230
<Filter Include="src\mcal\xtensa_esp32_s3">
231231
<UniqueIdentifier>{66987aaa-84ee-4911-aa5c-efd3108b55f0}</UniqueIdentifier>
232232
</Filter>
233+
<Filter Include="src\mcal\xtensa_esp32_s3_riscv_cop">
234+
<UniqueIdentifier>{fb4f50c3-b34c-4150-ae05-342dc3721eed}</UniqueIdentifier>
235+
</Filter>
233236
</ItemGroup>
234237
<ItemGroup>
235238
<ClCompile Include="src\app\led\app_led.cpp">
@@ -1189,6 +1192,36 @@
11891192
<ClCompile Include="src\mcal\xtensa_esp32_s3\mcal_wdg.cpp">
11901193
<Filter>src\mcal\xtensa_esp32_s3</Filter>
11911194
</ClCompile>
1195+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_gpt.cpp">
1196+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
1197+
</ClCompile>
1198+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_irq.cpp">
1199+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
1200+
</ClCompile>
1201+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_led.cpp">
1202+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
1203+
</ClCompile>
1204+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_osc.cpp">
1205+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
1206+
</ClCompile>
1207+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_port.cpp">
1208+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
1209+
</ClCompile>
1210+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_pwm.cpp">
1211+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
1212+
</ClCompile>
1213+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_spi.cpp">
1214+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
1215+
</ClCompile>
1216+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_wdg.cpp">
1217+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
1218+
</ClCompile>
1219+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_cpu.cpp">
1220+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
1221+
</ClCompile>
1222+
<ClCompile Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_eep.cpp">
1223+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
1224+
</ClCompile>
11921225
</ItemGroup>
11931226
<ItemGroup>
11941227
<ClInclude Include="src\math\calculus\derivative.h">
@@ -2751,6 +2784,48 @@
27512784
<ClInclude Include="src\mcal_led\mcal_led_dummy.h">
27522785
<Filter>src\mcal_led</Filter>
27532786
</ClInclude>
2787+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_gpt.h">
2788+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2789+
</ClInclude>
2790+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_irq.h">
2791+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2792+
</ClInclude>
2793+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_led.h">
2794+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2795+
</ClInclude>
2796+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_memory_progmem.h">
2797+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2798+
</ClInclude>
2799+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_osc.h">
2800+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2801+
</ClInclude>
2802+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_port.h">
2803+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2804+
</ClInclude>
2805+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_pwm.h">
2806+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2807+
</ClInclude>
2808+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_reg.h">
2809+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2810+
</ClInclude>
2811+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_ser.h">
2812+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2813+
</ClInclude>
2814+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_spi.h">
2815+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2816+
</ClInclude>
2817+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_wdg.h">
2818+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2819+
</ClInclude>
2820+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_benchmark.h">
2821+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2822+
</ClInclude>
2823+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_cpu.h">
2824+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2825+
</ClInclude>
2826+
<ClInclude Include="src\mcal\xtensa_esp32_s3_riscv_cop\mcal_eep.h">
2827+
<Filter>src\mcal\xtensa_esp32_s3_riscv_cop</Filter>
2828+
</ClInclude>
27542829
</ItemGroup>
27552830
<ItemGroup>
27562831
<None Include="src\util\STL\algorithm">

0 commit comments

Comments
 (0)