Skip to content

Commit 0288a47

Browse files
authored
Merge pull request #683 from ckormanyos/bl602_sifive_e24_riscv
Fix #681 via Bl602 sifive e24 riscv
2 parents dd34dc4 + 914b48e commit 0288a47

66 files changed

Lines changed: 1693 additions & 59 deletions

File tree

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: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -236,19 +236,19 @@ jobs:
236236
strategy:
237237
fail-fast: false
238238
matrix:
239-
suite: [ riscvfe310, wch_ch32v307, xtensa_esp32_s3_riscv_cop ]
239+
suite: [ bl602_sifive_e24_riscv, riscvfe310, wch_ch32v307, xtensa_esp32_s3_riscv_cop ]
240240
steps:
241241
- uses: actions/checkout@v4
242242
with:
243243
fetch-depth: '0'
244244
- name: update-tools
245245
run: |
246-
wget --no-check-certificate https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v14.2.0-3/xpack-riscv-none-elf-gcc-14.2.0-3-linux-x64.tar.gz
247-
tar -xzf xpack-riscv-none-elf-gcc-14.2.0-3-linux-x64.tar.gz -C ${{ runner.workspace }}
246+
wget --no-check-certificate https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v15.2.0-1/xpack-riscv-none-elf-gcc-15.2.0-1-linux-x64.tar.gz
247+
tar -xzf xpack-riscv-none-elf-gcc-15.2.0-1-linux-x64.tar.gz -C ${{ runner.workspace }}
248248
working-directory: ./
249249
- name: target-riscv-${{ matrix.suite }}
250250
run: |
251-
PATH="${{ runner.workspace }}/xpack-riscv-none-elf-gcc-14.2.0-3/bin:$PATH"
251+
PATH="${{ runner.workspace }}/xpack-riscv-none-elf-gcc-15.2.0-1/bin:$PATH"
252252
./target/build/build.sh ${{ matrix.suite }} rebuild
253253
ls -la ./bin/ref_app.elf ./bin/ref_app.hex ./bin/ref_app.map ./bin/ref_app.s19
254254
working-directory: ./ref_app/

readme.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,12 @@ The reference application supports the following targets (in alpha-numeric order
7171
| Target name (as used in build command) | Target Description | *(breadboard) |
7272
| -------------------------------------- | ----------------------------------------------------------- | ------------- |
7373
| `am335x` | BeagleBone with Texas Instruments(R) AM335x ARM(R) A8 | |
74-
| `am6254_soc_` | PocketBeagle2 with multicore Texas Instruments(R) AM6254 | |
74+
| `am6254_soc` | PocketBeagle2 with multicore Texas Instruments(R) AM6254 | |
7575
| `atmega2560` | MICROCHIP(R) [former ATMEL(R)] AVR(R) ATmega2560 | |
7676
| `atmega4809` | MICROCHIP(R) [former ATMEL(R)] AVR(R) ATmegax4809 | X |
7777
| `avr` (as used in the book) | MICROCHIP(R) [former ATMEL(R)] AVR(R) ATmega328P | X |
7878
| `bcm2835_raspi_b` | RaspberryPi(R) Zero with ARM1176-JZFS(TM) | X |
79+
| `bl602_sifive_e24_riscv` | BL602 single-core RISC-V (SiFive E24) | X |
7980
| `Debug`/`Release` | PC on `Win*` via MSVC x64 compiler `Debug`/`Release` | |
8081
| `host` | PC/Workstation on `Win*`/`mingw64`/`*nix` via host compiler | |
8182
| `lpc11c24` | NXP(R) OM13093 LPC11C24 board ARM(R) Cortex(R)-M0+ | |
@@ -415,6 +416,13 @@ called `target avr` (as used in the book) runs
415416
on a classic ARDUINO(R) compatible board.
416417
The program toggles the yellow LED on `portb.5`.
417418

419+
Target `bl602_sifive_e24_riscv` contains a fully manually-written bare-metal project
420+
for the BL602 single-core RISC-V (SiFive E24), making no use of any SDK.
421+
The boot code and bare-metal register interactions are based
422+
on the creative work in
423+
[`Chalandi/Baremetal_BL602_SiFive_E24_RISC-V`](https://github.com/Chalandi/Baremetal_BL602_SiFive_E24_RISC-V).
424+
This configuration toggles pin `IO3` and requires a self-fitted LED.
425+
418426
The ARM(R) 1176-JZF-S configuration (called `target bcm2835_raspi_b`) runs on the
419427
RaspberryPi(R) Zero (PiZero) single core controller.
420428
This project creates a bare-metal program for the PiZero.

ref_app/ref_app.sln

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ Global
5252
target atmega4809|x64 = target atmega4809|x64
5353
target avr|x64 = target avr|x64
5454
target bcm2835_raspi_b|x64 = target bcm2835_raspi_b|x64
55+
target bl602_sifive_e24_riscv|x64 = target bl602_sifive_e24_riscv|x64
5556
target lpc11c24|x64 = target lpc11c24|x64
5657
target nxp_imxrt1062|x64 = target nxp_imxrt1062|x64
5758
target riscvfe310|x64 = target riscvfe310|x64
@@ -86,6 +87,7 @@ Global
8687
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target atmega4809|x64.ActiveCfg = Release|x64
8788
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target avr|x64.ActiveCfg = Release|x64
8889
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target bcm2835_raspi_b|x64.ActiveCfg = Release|x64
90+
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target bl602_sifive_e24_riscv|x64.ActiveCfg = Release|x64
8991
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target lpc11c24|x64.ActiveCfg = Release|x64
9092
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target nxp_imxrt1062|x64.ActiveCfg = Release|x64
9193
{C8B59726-9319-45C3-8F11-F9F388FB6A2C}.target riscvfe310|x64.ActiveCfg = Release|x64
@@ -122,6 +124,8 @@ Global
122124
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target avr|x64.Build.0 = target avr|x64
123125
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target bcm2835_raspi_b|x64.ActiveCfg = target bcm2835_raspi_b|x64
124126
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target bcm2835_raspi_b|x64.Build.0 = target bcm2835_raspi_b|x64
127+
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target bl602_sifive_e24_riscv|x64.ActiveCfg = target bl602_sifive_e24_riscv|x64
128+
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target bl602_sifive_e24_riscv|x64.Build.0 = target bl602_sifive_e24_riscv|x64
125129
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target lpc11c24|x64.ActiveCfg = target lpc11c24|x64
126130
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target lpc11c24|x64.Build.0 = target lpc11c24|x64
127131
{30CE370B-40F3-4BCD-8986-64AAFF8971BD}.target nxp_imxrt1062|x64.ActiveCfg = target nxp_imxrt1062|x64

ref_app/ref_app.vcxproj

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,46 @@
473473
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
474474
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
475475
</ClCompile>
476+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_cpu.cpp">
477+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
478+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
479+
</ClCompile>
480+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_eep.cpp">
481+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
482+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
483+
</ClCompile>
484+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_gpt.cpp">
485+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
486+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
487+
</ClCompile>
488+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_irq.cpp">
489+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
490+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
491+
</ClCompile>
492+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_led.cpp">
493+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
494+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
495+
</ClCompile>
496+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_osc.cpp">
497+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
498+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
499+
</ClCompile>
500+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_port.cpp">
501+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
502+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
503+
</ClCompile>
504+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_pwm.cpp">
505+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
506+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
507+
</ClCompile>
508+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_spi.cpp">
509+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
510+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
511+
</ClCompile>
512+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_wdg.cpp">
513+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
514+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
515+
</ClCompile>
476516
<ClCompile Include="src\mcal\host\mcal_cpu.cpp" />
477517
<ClCompile Include="src\mcal\host\mcal_eep.cpp" />
478518
<ClCompile Include="src\mcal\host\mcal_gpt.cpp" />
@@ -1868,6 +1908,62 @@
18681908
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
18691909
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
18701910
</ClInclude>
1911+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_benchmark.h">
1912+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1913+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1914+
</ClInclude>
1915+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_cpu.h">
1916+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1917+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1918+
</ClInclude>
1919+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_eep.h">
1920+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1921+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1922+
</ClInclude>
1923+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_gpt.h">
1924+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1925+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1926+
</ClInclude>
1927+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_irq.h">
1928+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1929+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1930+
</ClInclude>
1931+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_led.h">
1932+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1933+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1934+
</ClInclude>
1935+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_memory_progmem.h">
1936+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1937+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1938+
</ClInclude>
1939+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_osc.h">
1940+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1941+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1942+
</ClInclude>
1943+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_port.h">
1944+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1945+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1946+
</ClInclude>
1947+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_pwm.h">
1948+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1949+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1950+
</ClInclude>
1951+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_reg.h">
1952+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1953+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1954+
</ClInclude>
1955+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_ser.h">
1956+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1957+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1958+
</ClInclude>
1959+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_spi.h">
1960+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1961+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1962+
</ClInclude>
1963+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_wdg.h">
1964+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
1965+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
1966+
</ClInclude>
18711967
<ClInclude Include="src\mcal\host\mcal_benchmark.h" />
18721968
<ClInclude Include="src\mcal\host\mcal_cpu.h" />
18731969
<ClInclude Include="src\mcal\host\mcal_eep.h" />

ref_app/ref_app.vcxproj.filters

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,9 @@
281281
<Filter Include="src\mcal\am6254_soc">
282282
<UniqueIdentifier>{74714130-9ba7-45a5-a860-74f8cb6eae22}</UniqueIdentifier>
283283
</Filter>
284+
<Filter Include="src\mcal\bl602_sifive_e24_riscv">
285+
<UniqueIdentifier>{9575513c-b5da-473e-9095-bbd968c02f6b}</UniqueIdentifier>
286+
</Filter>
284287
</ItemGroup>
285288
<ItemGroup>
286289
<ClCompile Include="src\app\led\app_led.cpp">
@@ -1303,6 +1306,36 @@
13031306
<ClCompile Include="src\mcal\am6254_soc\mcal_spi.cpp">
13041307
<Filter>src\mcal\am6254_soc</Filter>
13051308
</ClCompile>
1309+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_cpu.cpp">
1310+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
1311+
</ClCompile>
1312+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_eep.cpp">
1313+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
1314+
</ClCompile>
1315+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_gpt.cpp">
1316+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
1317+
</ClCompile>
1318+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_irq.cpp">
1319+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
1320+
</ClCompile>
1321+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_led.cpp">
1322+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
1323+
</ClCompile>
1324+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_osc.cpp">
1325+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
1326+
</ClCompile>
1327+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_port.cpp">
1328+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
1329+
</ClCompile>
1330+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_pwm.cpp">
1331+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
1332+
</ClCompile>
1333+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_spi.cpp">
1334+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
1335+
</ClCompile>
1336+
<ClCompile Include="src\mcal\bl602_sifive_e24_riscv\mcal_wdg.cpp">
1337+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
1338+
</ClCompile>
13061339
</ItemGroup>
13071340
<ItemGroup>
13081341
<ClInclude Include="src\math\calculus\derivative.h">
@@ -2952,6 +2985,48 @@
29522985
<ClInclude Include="src\util\utility\util_attribute.h">
29532986
<Filter>src\util\utility</Filter>
29542987
</ClInclude>
2988+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_cpu.h">
2989+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
2990+
</ClInclude>
2991+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_eep.h">
2992+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
2993+
</ClInclude>
2994+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_gpt.h">
2995+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
2996+
</ClInclude>
2997+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_irq.h">
2998+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
2999+
</ClInclude>
3000+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_led.h">
3001+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
3002+
</ClInclude>
3003+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_memory_progmem.h">
3004+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
3005+
</ClInclude>
3006+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_osc.h">
3007+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
3008+
</ClInclude>
3009+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_port.h">
3010+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
3011+
</ClInclude>
3012+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_pwm.h">
3013+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
3014+
</ClInclude>
3015+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_reg.h">
3016+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
3017+
</ClInclude>
3018+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_ser.h">
3019+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
3020+
</ClInclude>
3021+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_spi.h">
3022+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
3023+
</ClInclude>
3024+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_wdg.h">
3025+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
3026+
</ClInclude>
3027+
<ClInclude Include="src\mcal\bl602_sifive_e24_riscv\mcal_benchmark.h">
3028+
<Filter>src\mcal\bl602_sifive_e24_riscv</Filter>
3029+
</ClInclude>
29553030
</ItemGroup>
29563031
<ItemGroup>
29573032
<None Include="src\util\STL\algorithm">

ref_app/src/mcal/am6254_soc/mcal_gpt.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,19 @@
1111

1212
auto mcal::gpt::secure::get_time_elapsed() -> mcal::gpt::value_type
1313
{
14-
// Get the system tick from the system counter register.
15-
const value_type consistent_microsecond_tick = static_cast<value_type>(ARM64_READ_SYSREG(CNTPCT_EL0));
14+
// Get the consistent system tick from the system counter register.
15+
const value_type
16+
consistent_microsecond_tick
17+
{
18+
static_cast<value_type>(ARM64_READ_SYSREG(CNTPCT_EL0))
19+
};
1620

1721
// Convert the consistent tick to microseconds.
18-
return static_cast<value_type>(static_cast<value_type>(consistent_microsecond_tick + UINT64_C(100)) / UINT64_C(200));
22+
return
23+
static_cast<value_type>
24+
(
25+
static_cast<value_type>(consistent_microsecond_tick + UINT64_C(100)) / UINT64_C(200)
26+
);
1927
}
2028

2129
auto mcal::gpt::secure::get_time_elapsed_core1() -> mcal::gpt::value_type_core1
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
///////////////////////////////////////////////////////////////////////////////
2+
// Copyright Christopher Kormanyos 2014 - 2025.
3+
// Distributed under the Boost Software License,
4+
// Version 1.0. (See accompanying file LICENSE_1_0.txt
5+
// or copy at http://www.boost.org/LICENSE_1_0.txt)
6+
//
7+
8+
#ifndef MCAL_BENCHMARK_2014_04_16_H
9+
#define MCAL_BENCHMARK_2014_04_16_H
10+
11+
#include <mcal_port.h>
12+
#include <mcal_reg.h>
13+
14+
#include <cstdint>
15+
16+
namespace mcal
17+
{
18+
namespace benchmark
19+
{
20+
using benchmark_port_type = mcal::port::port_pin<unsigned { UINT8_C(4) }>;
21+
}
22+
}
23+
24+
#endif // MCAL_BENCHMARK_2014_04_16_H
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
///////////////////////////////////////////////////////////////////////////////
2+
// Copyright Christopher Kormanyos 2007 - 2025.
3+
// Distributed under the Boost Software License,
4+
// Version 1.0. (See accompanying file LICENSE_1_0.txt
5+
// or copy at http://www.boost.org/LICENSE_1_0.txt)
6+
//
7+
8+
#include <mcal_cpu.h>
9+
10+
auto mcal::cpu::init() -> void
11+
{
12+
}

0 commit comments

Comments
 (0)