Skip to content

Commit 79ce760

Browse files
committed
Move LED toggles into core mains
1 parent b3435d1 commit 79ce760

6 files changed

Lines changed: 57 additions & 61 deletions

File tree

ref_app/target.vcxproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1087,7 +1087,7 @@
10871087
<ClCompile Include="target\micros\am335x\startup\crt1.cpp" />
10881088
<ClCompile Include="target\micros\am335x\startup\int_vect.cpp" />
10891089
<ClCompile Include="target\micros\am6254_soc\Code\Appli\Core\a53\main.c" />
1090-
<ClCompile Include="target\micros\am6254_soc\Code\Appli\Core\a53\main_core0.cpp" />
1090+
<ClCompile Include="target\micros\am6254_soc\Code\Appli\Core\a53\main_cores.cpp" />
10911091
<ClCompile Include="target\micros\am6254_soc\Code\Mcal\SysTickTimer\SysTickTimer.c" />
10921092
<ClCompile Include="target\micros\am6254_soc\Code\Startup\Core\a53\Startup.c" />
10931093
<ClCompile Include="target\micros\am6254_soc\Code\Std\StdLib.c" />

ref_app/target.vcxproj.filters

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1085,7 +1085,7 @@
10851085
<ClCompile Include="target\micros\am6254_soc\Code\Startup\Core\a53\Startup.c">
10861086
<Filter>micros\am6254_soc\Code\Startup\Core\a53</Filter>
10871087
</ClCompile>
1088-
<ClCompile Include="target\micros\am6254_soc\Code\Appli\Core\a53\main_core0.cpp">
1088+
<ClCompile Include="target\micros\am6254_soc\Code\Appli\Core\a53\main_cores.cpp">
10891089
<Filter>micros\am6254_soc\Code\Appli\Core\a53</Filter>
10901090
</ClCompile>
10911091
</ItemGroup>

ref_app/target/micros/am6254_soc/Code/Appli/Core/a53/main.c

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@
1414
void timer_isr(void);
1515

1616
extern uint32_t GetActiveCoreId(void);
17+
1718
extern void main_core0(void);
19+
extern void main_core1(void);
20+
extern void main_core2(void);
21+
extern void main_core3(void);
1822

1923
#if defined(__GNUC__)
2024
__attribute__((used,noinline))
@@ -88,16 +92,10 @@ void main(void)
8892
// Move the core initialization functions into main_init().
8993
main_init(ActiveCore);
9094

91-
if(ActiveCore == UINT32_C(0))
92-
{
93-
// TBD: Run my cooperative scheduler, and replace the while-loop.
94-
main_core0();
95-
//while(1) { (void) mcal_gpt_get_time_elapsed(); }
96-
}
97-
else
98-
{
99-
while(1) { ; }
100-
}
95+
if (ActiveCore == UINT32_C(0)) { main_core0(); } // TBD: Run the normal ref_app coop-scheduler in core0.
96+
else if(ActiveCore == UINT32_C(1)) { main_core1(); }
97+
else if(ActiveCore == UINT32_C(2)) { main_core2(); }
98+
else if(ActiveCore == UINT32_C(3)) { main_core3(); }
10199
}
102100

103101
//----------------------------------------------------------------------------------------

ref_app/target/micros/am6254_soc/Code/Appli/Core/a53/main_core0.cpp

Lines changed: 0 additions & 48 deletions
This file was deleted.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
///////////////////////////////////////////////////////////////////////////////
2+
// Copyright Christopher Kormanyos 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 <core_macros.h>
9+
#include <my_led.h>
10+
11+
#include <util/utility/util_time.h>
12+
13+
#include <cstdint>
14+
15+
extern "C" void main_core0(void);
16+
extern "C" void main_core1(void);
17+
extern "C" void main_core2(void);
18+
extern "C" void main_core3(void);
19+
20+
template<const int LED_ID>
21+
void main_core_worker(void)
22+
{
23+
using timer_type = util::timer<std::uint64_t>;
24+
25+
using led_type = my_led<LED_ID>;
26+
27+
led_type led;
28+
29+
timer_type led_timer(timer_type::seconds(1U));
30+
31+
led.toggle();
32+
33+
for(;;)
34+
{
35+
while(!led_timer.timeout()) { asm volatile("nop"); }
36+
37+
led.toggle();
38+
39+
led_timer.start_interval(timer_type::seconds(1U));
40+
}
41+
}
42+
43+
extern "C" void main_core0(void) { main_core_worker<LED_1>(); }
44+
extern "C" void main_core1(void) { main_core_worker<LED_2>(); }
45+
extern "C" void main_core2(void) { main_core_worker<LED_3>(); }
46+
extern "C" void main_core3(void) { main_core_worker<LED_4>(); }

ref_app/target/micros/am6254_soc/make/am6254_soc_files.gmk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ FILES_CPP :=
1414
FILES_TGT = $(PATH_APP)/mcal/mcal_gcc_cxx_completion \
1515
$(PATH_APP)/mcal/$(TGT)/mcal_gpt \
1616
$(PATH_TGT)/Code/Appli/Core/$(CORE_FAMILY)/main \
17-
$(PATH_TGT)/Code/Appli/Core/$(CORE_FAMILY)/main_core0 \
17+
$(PATH_TGT)/Code/Appli/Core/$(CORE_FAMILY)/main_cores \
1818
$(PATH_TGT)/Code/Startup/Core/$(CORE_FAMILY)/Startup \
1919
$(PATH_TGT)/Code/Std/StdLib
2020

0 commit comments

Comments
 (0)