Skip to content

Commit 9ee1ba5

Browse files
committed
fixed arm cross-compilation
1 parent 4457b51 commit 9ee1ba5

7 files changed

Lines changed: 18 additions & 18 deletions

File tree

example/multi_thread/main.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @copyright Copyright (c) 2024
88
*/
99

10-
// #include "baremetal_api.h"
10+
#include "baremetal_api.h"
1111
#include "preempt_fifo_scheduler.hpp"
1212
#include "rr_scheduler.hpp"
1313
#include "mutex.hpp"
@@ -30,8 +30,8 @@ void(thread0_routine)() {
3030
while (1) {
3131
{
3232
{
33-
// atomic_section a;
34-
// itm_trace("thread 0\n");
33+
atomic_section a;
34+
itm_trace("thread 0\n");
3535
}
3636
}
3737
}
@@ -44,8 +44,8 @@ void(thread1_routine)() {
4444
while (1) {
4545
{
4646
{
47-
// atomic_section a;
48-
// itm_trace("thread 1\n");
47+
atomic_section a;
48+
itm_trace("thread 1\n");
4949
}
5050
}
5151
}
@@ -57,8 +57,8 @@ void(thread1_routine)() {
5757
void(thread2_routine)() {
5858
while (1) {
5959
{
60-
// atomic_section a;
61-
// itm_trace("thread 2\n");
60+
atomic_section a;
61+
itm_trace("thread 2\n");
6262
}
6363
}
6464
}

kernel/CMakeLists.txt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,20 +45,16 @@ add_library(${LIBRARY_NAME} STATIC
4545
${CMAKE_CURRENT_LIST_DIR}/src/preempt_fifo_scheduler.cpp
4646
${CMAKE_CURRENT_LIST_DIR}/src/thread.cpp
4747
${CMAKE_CURRENT_LIST_DIR}/src/bitops.cpp
48-
# ${CMAKE_CURRENT_LIST_DIR}/src/atomic_section.cpp
48+
${CMAKE_CURRENT_LIST_DIR}/src/atomic_section.cpp
4949
${CMAKE_CURRENT_LIST_DIR}/src/mempool.cpp
5050
${CMAKE_CURRENT_LIST_DIR}/src/linkedlist.cpp
51-
# ${CMAKE_CURRENT_LIST_DIR}/src/mutex.cpp
52-
)
53-
54-
target_include_directories(${LIBRARY_NAME} PRIVATE
55-
${CMAKE_CURRENT_LIST_DIR}/include/
51+
${CMAKE_CURRENT_LIST_DIR}/src/mutex.cpp
5652
)
5753

5854
if (ARCH_DEFINED STREQUAL "ARMV7M")
5955
target_compile_definitions(${LIBRARY_NAME} PRIVATE ARMV7M)
6056

61-
target_include_directories(${LIBRARY_NAME} PRIVATE
57+
target_include_directories(${LIBRARY_NAME} PRIVATE
6258
${CMAKE_CURRENT_LIST_DIR}/arch/armv7m/
6359
${CMAKE_CURRENT_LIST_DIR}/include/
6460
)

kernel/arch/armv7m/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,5 @@ target_include_directories(LibBareMetal PRIVATE
2121
${CMAKE_CURRENT_LIST_DIR} # ${CMAKE_CURRENT_LIST_DIR} maps to current folder: arch/armv7m
2222
${CMAKE_CURRENT_LIST_DIR}/../../include
2323
)
24+
25+
target_compile_definitions(LibBareMetal PRIVATE ARMV7M)

kernel/arch/armv7m/gcc-arm-none-eabi.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
4949

5050
# MCU specific flags.
5151
set(TARGET_FLAGS "-mcpu=cortex-m7 -mfpu=fpv5-d16 -mfloat-abi=hard")
52-
# set(LINKER_SCRIPT_PATH ${CMAKE_SOURCE_DIR}/arch/armv7m)
52+
set(LINKER_SCRIPT_PATH ${CMAKE_CURRENT_LIST_DIR}/../../arch/armv7m)
5353

5454
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TARGET_FLAGS}")
5555

@@ -71,7 +71,7 @@ set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp -MMD -MP")
7171
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -fno-rtti -fno-exceptions -fno-threadsafe-statics")
7272

7373
set(CMAKE_C_LINK_FLAGS "${TARGET_FLAGS}")
74-
# set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -T \"${LINKER_SCRIPT_PATH}/STM32F767ZITx_FLASH.ld\"")
74+
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -T \"${LINKER_SCRIPT_PATH}/STM32F767ZITx_FLASH.ld\"")
7575
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} --specs=nano.specs")
7676
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -Wl,-Map=${CMAKE_PROJECT_NAME}.map -Wl,--gc-sections")
7777
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -Wl,--start-group -lc -lm -Wl,--end-group")

kernel/include/mempool.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ extern "C" {
3333
extern size_t _ld_start_heap[];
3434
extern size_t _ld_end_heap[];
3535
}
36+
#else
37+
static_assert(0, "invalid architecture");
3638
#endif
3739

3840
class mempool {

kernel/include/preempt_fifo_scheduler.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace YesRTOS {
1919

2020
class PreemptFIFOScheduler final {
2121
public:
22-
volatile static void schedule_next();
22+
static void schedule_next();
2323
static void start();
2424
static void init();
2525

kernel/src/preempt_fifo_scheduler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ void PreemptFIFOScheduler::start() {
8585
* @brief Return the next thread to run.
8686
*/
8787
__attribute__((optimize("O0")))
88-
volatile void PreemptFIFOScheduler::schedule_next() {
88+
void PreemptFIFOScheduler::schedule_next() {
8989
list_node_t<Thread>* p_curr_thread_node = running_threads[curr_prio];
9090
list_node_t<Thread>* p_next_thread_node = ready_list[curr_prio]->get_next_node_circular(p_curr_thread_node);
9191

0 commit comments

Comments
 (0)