Compare commits
4 Commits
a33b51a708
...
b69fd19910
Author | SHA1 | Date | |
---|---|---|---|
b69fd19910 | |||
25306948c9 | |||
74fd5b0a2b | |||
ca36d3ef84 |
@ -1,4 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.21)
|
||||
include(CheckLinkerFlag)
|
||||
|
||||
project(mnrs-bsp LANGUAGES ASM C)
|
||||
set(LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/env/${BOARD}/link.lds"
|
||||
CACHE FILEPATH "Linker script to use for BSP linking")
|
||||
@ -30,7 +32,13 @@ add_subdirectory(libwrap)
|
||||
add_library(bsp STATIC env/${BOARD}/init.c)
|
||||
target_link_libraries(bsp PUBLIC startup wrap)
|
||||
target_include_directories(bsp PUBLIC env/${BOARD})
|
||||
target_link_options(bsp INTERFACE LINKER:--no-warn-rwx-segments -nostartfiles -T ${LINKER_SCRIPT})
|
||||
|
||||
check_linker_flag(C "LINKER:--no-warn-rwx-segments" HAS_NO_WARN_RWX_SEGMENTS)
|
||||
|
||||
if(HAS_NO_WARN_RWX_SEGMENTS)
|
||||
target_link_options(bsp INTERFACE LINKER:--no-warn-rwx-segments)
|
||||
endif()
|
||||
target_link_options(bsp INTERFACE LINKER: -nostartfiles -T ${LINKER_SCRIPT})
|
||||
|
||||
if(SEMIHOSTING)
|
||||
target_include_directories(bsp INTERFACE include)
|
||||
|
4
env/moonlight/link.lds
vendored
4
env/moonlight/link.lds
vendored
@ -5,8 +5,8 @@ ENTRY( _start )
|
||||
MEMORY
|
||||
{
|
||||
rom (rxai!w) : ORIGIN = 0xFFFFE000, LENGTH = 2k
|
||||
flash (rxai!w) : ORIGIN = 0xE0000000, LENGTH = 16M
|
||||
ram (wxa!ri) : ORIGIN = 0xC0000000, LENGTH = 128K
|
||||
flash (rxai!w) : ORIGIN = 0x30000000, LENGTH = 16M
|
||||
ram (wxa!ri) : ORIGIN = 0x10000000, LENGTH = 128K
|
||||
dram (wxa!ri) : ORIGIN = 0x00000000, LENGTH = 2048M
|
||||
}
|
||||
|
||||
|
@ -2,10 +2,12 @@
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
extern ssize_t _bsp_write(int, const void *, size_t);
|
||||
extern ssize_t _bsp_write(int, const void*, size_t);
|
||||
|
||||
int __wrap_puts(const char *s) {
|
||||
int len = strlen(s);
|
||||
return _bsp_write(STDOUT_FILENO, s, len);
|
||||
int __wrap_puts(const char* s) {
|
||||
const char* str = s;
|
||||
while(*str)
|
||||
str++;
|
||||
return _bsp_write(STDOUT_FILENO, s, str - s);
|
||||
}
|
||||
weak_under_alias(puts);
|
||||
|
Reference in New Issue
Block a user