support zynq7000-zc702
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
|
||||
SRC_DIR := fs shell lib tools boards
|
||||
|
||||
SRC_DIR := fs shell lib boards tools app
|
||||
|
||||
|
||||
include $(KERNEL_ROOT)/compiler.mk
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
ifeq ($(BOARD), imx6q-sabrelite)
|
||||
toolchain ?= arm-none-eabi-
|
||||
user_ldflags = --specs=nosys.specs -Wl,-Map=user.map,-cref -N
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
||||
endif
|
||||
ifeq ($(BOARD), zynq7000-zc702)
|
||||
toolchain ?= arm-xilinx-eabi-
|
||||
user_ldflags = -Wl,--start-group,-lgcc,-lc,--end-group -N
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||
board_specs = stub.o
|
||||
#cflags = -Wall -g -std=c11
|
||||
endif
|
||||
|
||||
cc = ${toolchain}gcc
|
||||
ld = ${toolchain}g++
|
||||
objdump = ${toolchain}objdump
|
||||
c_useropts = -O0
|
||||
|
||||
INC_DIR = -I$(KERNEL_ROOT)/services/shell/letter-shell \
|
||||
-I$(KERNEL_ROOT)/services/lib/ipc \
|
||||
-I$(KERNEL_ROOT)/services/lib/memory \
|
||||
-I$(KERNEL_ROOT)/services/fs/libfs \
|
||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||
-I$(KERNEL_ROOT)/services/app
|
||||
|
||||
all: init simple_client simple_server shell fs_server test_priority readme.txt | bin
|
||||
../tools/mkfs/mkfs ./fs.img $^
|
||||
@mv $(filter-out readme.txt, $^) bin
|
||||
@mv *.o bin
|
||||
@mv *.asm bin
|
||||
|
||||
bin:
|
||||
@mkdir -p bin
|
||||
|
||||
shell: shell_port.o libserial.o shell_cmd_list.o shell.o shell_ext.o libfs_to_client.o libipc.o session.o usyscall.o
|
||||
@${ld} ${user_ldflags} -e main -o $@ $^ ${board_specs}
|
||||
@${objdump} -S $@ > $@.asm
|
||||
|
||||
init: init.o libfs_to_client.o libipc.o session.o libserial.o usyscall.o
|
||||
@${ld} ${user_ldflags} -e main -o $@ $^ ${board_specs}
|
||||
@${objdump} -S $@ > $@.asm
|
||||
|
||||
simple_client: simple_client.o libserial.o libipc.o session.o simple_service.o libfs_to_client.o usyscall.o
|
||||
@${ld} ${user_ldflags} -e main -o $@ $^ ${board_specs}
|
||||
@${objdump} -S $@ > $@.asm
|
||||
|
||||
simple_server: simple_server.o libserial.o libipc.o session.o simple_service.o usyscall.o
|
||||
@${ld} ${user_ldflags} -e main -o $@ $^ ${board_specs}
|
||||
@${objdump} -S $@ > $@.asm
|
||||
|
||||
fs_server: fs_server.o libfs_to_client.o fs.o libserial.o libipc.o session.o block_io.o usyscall.o
|
||||
@${ld} ${user_ldflags} -e main -o $@ $^ ${board_specs}
|
||||
@${objdump} -S $@ > $@.asm
|
||||
|
||||
test_priority: test_priority.o libserial.o usyscall.o
|
||||
@${ld} ${user_ldflags} -e main -o $@ $^ ${board_specs}
|
||||
@${objdump} -S $@ > $@.asm
|
||||
|
||||
%.o: %.c
|
||||
@${cc} ${cflags} ${c_useropts} ${INC_DIR} -o $@ -c $<
|
||||
|
||||
%.o: %.S
|
||||
@${cc} ${cflags} ${c_useropts} -o $@ -c $<
|
||||
@@ -1,53 +1,28 @@
|
||||
|
||||
ifeq ($(BOARD), imx6q-sabrelite)
|
||||
toolchain ?= arm-none-eabi-
|
||||
endif
|
||||
ifeq ($(BOARD), zynq7000-zc702)
|
||||
toolchain ?= arm-xilinx-eabi-
|
||||
endif
|
||||
cc = ${toolchain}gcc
|
||||
ld = ${toolchain}g++
|
||||
objdump = ${toolchain}objdump
|
||||
user_ldflags = --specs=nosys.specs -Wl,-Map=user.map,-cref -N
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
||||
user_ldflags = -N -Ttext 0
|
||||
|
||||
cflags = -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
||||
c_useropts = -O0
|
||||
|
||||
INC_DIR = -I$(KERNEL_ROOT)/services/shell/letter-shell \
|
||||
INC_DIR = -I$(KERNEL_ROOT)/services/fs/libfs \
|
||||
-I$(KERNEL_ROOT)/services/fs/fs_server/include \
|
||||
-I$(KERNEL_ROOT)/services/lib/ipc \
|
||||
-I$(KERNEL_ROOT)/services/lib/memory \
|
||||
-I$(KERNEL_ROOT)/services/boards/imx6q-sabrelite \
|
||||
-I$(KERNEL_ROOT)/services/fs/libfs
|
||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||
-I$(KERNEL_ROOT)/services/app
|
||||
|
||||
all: init simple_client simple_server shell fs_server test_priority readme.txt | bin
|
||||
../../tools/mkfs/mkfs ./fs.img $^
|
||||
@mv $(filter-out readme.txt, $^) bin
|
||||
@mv *.o bin
|
||||
@mv *.asm bin
|
||||
|
||||
bin:
|
||||
@mkdir -p bin
|
||||
|
||||
shell: shell_port.o libserial.o shell_cmd_list.o shell.o shell_ext.o libfs_to_client.o libipc.o session.o usyscall.o
|
||||
@${ld} ${user_ldflags} -e main -o $@ $^
|
||||
@${objdump} -S $@ > $@.asm
|
||||
|
||||
init: init.o libfs_to_client.o libipc.o session.o libserial.o usyscall.o
|
||||
@${ld} ${user_ldflags} -e main -o $@ $^
|
||||
@${objdump} -S $@ > $@.asm
|
||||
|
||||
simple_client: simple_client.o libserial.o libipc.o session.o simple_service.o libfs_to_client.o usyscall.o
|
||||
@${ld} ${user_ldflags} -e main -o $@ $^
|
||||
@${objdump} -S $@ > $@.asm
|
||||
|
||||
simple_server: simple_server.o libserial.o libipc.o session.o simple_service.o usyscall.o
|
||||
@${ld} ${user_ldflags} -e main -o $@ $^
|
||||
@${objdump} -S $@ > $@.asm
|
||||
|
||||
fs_server: fs_server.o libfs_to_client.o fs.o libserial.o libipc.o session.o block_io.o usyscall.o
|
||||
@${ld} ${user_ldflags} -e main -o $@ $^
|
||||
@${objdump} -S $@ > $@.asm
|
||||
|
||||
test_priority: test_priority.o libserial.o usyscall.o
|
||||
@${ld} ${user_ldflags} -e main -o $@ $^
|
||||
@${objdump} -S $@ > $@.asm
|
||||
libserial: libserial.o
|
||||
@mv $^ ../../app
|
||||
|
||||
%.o: %.c
|
||||
@${cc} ${cflags} ${c_useropts} ${INC_DIR} -o $@ -c $<
|
||||
@echo "cc $^"
|
||||
@${cc} ${cflags} ${c_useropts} ${INC_DIR} -o $@ -c $^
|
||||
|
||||
%.o: %.S
|
||||
@${cc} ${cflags} ${c_useropts} -o $@ -c $<
|
||||
include $(KERNEL_ROOT)/compiler.mk
|
||||
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -1,614 +0,0 @@
|
||||
Archive member included to satisfy reference by file (symbol)
|
||||
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_udivsi3.o)
|
||||
libserial.o (__aeabi_uidiv)
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_dvmd_tls.o)
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_udivsi3.o) (__aeabi_idiv0)
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o (__libc_init_array)
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-memset.o)
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o (memset)
|
||||
|
||||
Memory Configuration
|
||||
|
||||
Name Origin Length Attributes
|
||||
*default* 0x0000000000000000 0xffffffffffffffff
|
||||
|
||||
Linker script and memory map
|
||||
|
||||
LOAD /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crti.o
|
||||
LOAD /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
LOAD /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
LOAD test_priority.o
|
||||
LOAD libserial.o
|
||||
LOAD usyscall.o
|
||||
LOAD /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libstdc++.a
|
||||
LOAD /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libm.a
|
||||
START GROUP
|
||||
LOAD /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a
|
||||
LOAD /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a
|
||||
END GROUP
|
||||
START GROUP
|
||||
LOAD /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a
|
||||
LOAD /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a
|
||||
LOAD /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libnosys.a
|
||||
END GROUP
|
||||
LOAD /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtend.o
|
||||
LOAD /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtn.o
|
||||
[!provide] PROVIDE (__executable_start, SEGMENT_START ("text-segment", 0x8000))
|
||||
0x0000000000008000 . = SEGMENT_START ("text-segment", 0x8000)
|
||||
|
||||
.interp
|
||||
*(.interp)
|
||||
|
||||
.note.gnu.build-id
|
||||
*(.note.gnu.build-id)
|
||||
|
||||
.hash
|
||||
*(.hash)
|
||||
|
||||
.gnu.hash
|
||||
*(.gnu.hash)
|
||||
|
||||
.dynsym
|
||||
*(.dynsym)
|
||||
|
||||
.dynstr
|
||||
*(.dynstr)
|
||||
|
||||
.gnu.version
|
||||
*(.gnu.version)
|
||||
|
||||
.gnu.version_d
|
||||
*(.gnu.version_d)
|
||||
|
||||
.gnu.version_r
|
||||
*(.gnu.version_r)
|
||||
|
||||
.rel.init
|
||||
*(.rel.init)
|
||||
|
||||
.rela.init
|
||||
*(.rela.init)
|
||||
|
||||
.rel.text
|
||||
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
|
||||
|
||||
.rela.text
|
||||
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
|
||||
|
||||
.rel.fini
|
||||
*(.rel.fini)
|
||||
|
||||
.rela.fini
|
||||
*(.rela.fini)
|
||||
|
||||
.rel.rodata
|
||||
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
|
||||
|
||||
.rela.rodata
|
||||
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
|
||||
|
||||
.rel.data.rel.ro
|
||||
*(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)
|
||||
|
||||
.rela.data.rel.ro
|
||||
*(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*)
|
||||
|
||||
.rel.data
|
||||
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
|
||||
|
||||
.rela.data
|
||||
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
|
||||
|
||||
.rel.tdata
|
||||
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
|
||||
|
||||
.rela.tdata
|
||||
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
|
||||
|
||||
.rel.tbss
|
||||
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
|
||||
|
||||
.rela.tbss
|
||||
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
|
||||
|
||||
.rel.ctors
|
||||
*(.rel.ctors)
|
||||
|
||||
.rela.ctors
|
||||
*(.rela.ctors)
|
||||
|
||||
.rel.dtors
|
||||
*(.rel.dtors)
|
||||
|
||||
.rela.dtors
|
||||
*(.rela.dtors)
|
||||
|
||||
.rel.got
|
||||
*(.rel.got)
|
||||
|
||||
.rela.got
|
||||
*(.rela.got)
|
||||
|
||||
.rel.bss
|
||||
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
|
||||
|
||||
.rela.bss
|
||||
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
|
||||
|
||||
.rel.iplt 0x0000000000008000 0x0
|
||||
[!provide] PROVIDE (__rel_iplt_start, .)
|
||||
*(.rel.iplt)
|
||||
.rel.iplt 0x0000000000008000 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
[!provide] PROVIDE (__rel_iplt_end, .)
|
||||
|
||||
.rela.iplt 0x0000000000008000 0x0
|
||||
[!provide] PROVIDE (__rela_iplt_start, .)
|
||||
*(.rela.iplt)
|
||||
[!provide] PROVIDE (__rela_iplt_end, .)
|
||||
|
||||
.rel.plt
|
||||
*(.rel.plt)
|
||||
|
||||
.rela.plt
|
||||
*(.rela.plt)
|
||||
|
||||
.init 0x0000000000008000 0x18
|
||||
*(SORT(.init))
|
||||
.init 0x0000000000008000 0xc /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crti.o
|
||||
0x0000000000008000 _init
|
||||
.init 0x000000000000800c 0xc /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtn.o
|
||||
|
||||
.plt
|
||||
*(.plt)
|
||||
|
||||
.iplt 0x0000000000008018 0x0
|
||||
*(.iplt)
|
||||
.iplt 0x0000000000008018 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
|
||||
.text 0x0000000000008018 0xe40
|
||||
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
*(.text.hot .text.hot.*)
|
||||
*(.text .stub .text.* .gnu.linkonce.t.*)
|
||||
.text 0x0000000000008018 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crti.o
|
||||
.text 0x0000000000008018 0xbc /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
.text 0x00000000000080d4 0x114 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
0x00000000000080d4 _mainCRTStartup
|
||||
0x00000000000080d4 _start
|
||||
.text 0x00000000000081e8 0xc4 test_priority.o
|
||||
0x000000000000826c main
|
||||
.text 0x00000000000082ac 0x4dc libserial.o
|
||||
0x00000000000083a4 getc
|
||||
0x000000000000855c printf
|
||||
.text 0x0000000000008788 0x424 usyscall.o
|
||||
0x00000000000087f8 spawn
|
||||
0x000000000000885c exit
|
||||
0x0000000000008894 yield
|
||||
0x00000000000088cc register_server
|
||||
0x0000000000008908 session
|
||||
0x0000000000008950 poll_session
|
||||
0x0000000000008990 close_session
|
||||
0x00000000000089cc get_memblock_info
|
||||
0x0000000000008a08 set_priority
|
||||
0x0000000000008a44 task_heap_base
|
||||
0x0000000000008a7c show_task
|
||||
0x0000000000008ab4 show_mem
|
||||
0x0000000000008aec show_cpu
|
||||
0x0000000000008b24 mmap
|
||||
0x0000000000008b6c register_irq
|
||||
.text 0x0000000000008bac 0x114 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_udivsi3.o)
|
||||
0x0000000000008bac __udivsi3
|
||||
0x0000000000008bac __aeabi_uidiv
|
||||
0x0000000000008ca0 __aeabi_uidivmod
|
||||
.text 0x0000000000008cc0 0x4 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_dvmd_tls.o)
|
||||
0x0000000000008cc0 __aeabi_ldiv0
|
||||
0x0000000000008cc0 __aeabi_idiv0
|
||||
.text 0x0000000000008cc4 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
.text.__libc_init_array
|
||||
0x0000000000008cc4 0x80 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
0x0000000000008cc4 __libc_init_array
|
||||
.text 0x0000000000008d44 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-memset.o)
|
||||
.text.memset 0x0000000000008d44 0x114 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-memset.o)
|
||||
0x0000000000008d44 memset
|
||||
.text 0x0000000000008e58 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtend.o
|
||||
.text 0x0000000000008e58 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtn.o
|
||||
*(.gnu.warning)
|
||||
*(.glue_7t)
|
||||
.glue_7t 0x0000000000008e58 0x0 linker stubs
|
||||
*(.glue_7)
|
||||
.glue_7 0x0000000000008e58 0x0 linker stubs
|
||||
*(.vfp11_veneer)
|
||||
.vfp11_veneer 0x0000000000008e58 0x0 linker stubs
|
||||
*(.v4_bx)
|
||||
.v4_bx 0x0000000000008e58 0x0 linker stubs
|
||||
|
||||
.fini 0x0000000000008e58 0x18
|
||||
*(SORT(.fini))
|
||||
.fini 0x0000000000008e58 0xc /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crti.o
|
||||
0x0000000000008e58 _fini
|
||||
.fini 0x0000000000008e64 0xc /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtn.o
|
||||
[!provide] PROVIDE (__etext, .)
|
||||
[!provide] PROVIDE (_etext, .)
|
||||
[!provide] PROVIDE (etext, .)
|
||||
|
||||
.rodata 0x0000000000008e70 0x37
|
||||
*(.rodata .rodata.* .gnu.linkonce.r.*)
|
||||
.rodata 0x0000000000008e70 0x2d test_priority.o
|
||||
*fill* 0x0000000000008e9d 0x3
|
||||
.rodata 0x0000000000008ea0 0x7 libserial.o
|
||||
|
||||
.rodata1
|
||||
*(.rodata1)
|
||||
|
||||
.ARM.extab 0x0000000000008ea7 0x0
|
||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||
.ARM.extab 0x0000000000008ea7 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
[!provide] PROVIDE (__exidx_start, .)
|
||||
|
||||
.ARM.exidx 0x0000000000008ea8 0x8
|
||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
||||
.ARM.exidx 0x0000000000008ea8 0x8 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
[!provide] PROVIDE (__exidx_end, .)
|
||||
|
||||
.eh_frame_hdr
|
||||
*(.eh_frame_hdr)
|
||||
*(.eh_frame_entry .eh_frame_entry.*)
|
||||
|
||||
.eh_frame 0x0000000000008eb0 0x4
|
||||
*(.eh_frame)
|
||||
.eh_frame 0x0000000000008eb0 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
.eh_frame 0x0000000000008eb0 0x4 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtend.o
|
||||
*(.eh_frame.*)
|
||||
|
||||
.gcc_except_table
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
|
||||
.gnu_extab
|
||||
*(.gnu_extab*)
|
||||
|
||||
.exception_ranges
|
||||
*(.exception_ranges .exception_ranges*)
|
||||
0x0000000000008eb4 . = .
|
||||
|
||||
.eh_frame
|
||||
*(.eh_frame)
|
||||
*(.eh_frame.*)
|
||||
|
||||
.gnu_extab
|
||||
*(.gnu_extab)
|
||||
|
||||
.gcc_except_table
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
|
||||
.exception_ranges
|
||||
*(.exception_ranges .exception_ranges*)
|
||||
|
||||
.tdata
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
|
||||
.tbss
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*)
|
||||
*(.tcommon)
|
||||
|
||||
.preinit_array 0x0000000000008eb4 0x0
|
||||
0x0000000000008eb4 PROVIDE (__preinit_array_start, .)
|
||||
*(.preinit_array)
|
||||
0x0000000000008eb4 PROVIDE (__preinit_array_end, .)
|
||||
|
||||
.init_array 0x0000000000008eb4 0x4
|
||||
0x0000000000008eb4 PROVIDE (__init_array_start, .)
|
||||
*(SORT(.init_array.*) SORT(.ctors.*))
|
||||
*(.init_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .ctors)
|
||||
.init_array 0x0000000000008eb4 0x4 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
0x0000000000008eb8 PROVIDE (__init_array_end, .)
|
||||
|
||||
.fini_array 0x0000000000008eb8 0x4
|
||||
[!provide] PROVIDE (__fini_array_start, .)
|
||||
*(SORT(.fini_array.*) SORT(.dtors.*))
|
||||
*(.fini_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .dtors)
|
||||
.fini_array 0x0000000000008eb8 0x4 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
[!provide] PROVIDE (__fini_array_end, .)
|
||||
|
||||
.ctors
|
||||
*crtbegin.o(.ctors)
|
||||
*crtbegin?.o(.ctors)
|
||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
|
||||
*(SORT(.ctors.*))
|
||||
*(.ctors)
|
||||
|
||||
.dtors
|
||||
*crtbegin.o(.dtors)
|
||||
*crtbegin?.o(.dtors)
|
||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
|
||||
*(SORT(.dtors.*))
|
||||
*(.dtors)
|
||||
|
||||
.jcr 0x0000000000008ebc 0x4
|
||||
*(.jcr)
|
||||
.jcr 0x0000000000008ebc 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
.jcr 0x0000000000008ebc 0x4 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtend.o
|
||||
|
||||
.data.rel.ro
|
||||
*(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
|
||||
*(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)
|
||||
|
||||
.dynamic
|
||||
*(.dynamic)
|
||||
|
||||
.got 0x0000000000008ec0 0x0
|
||||
*(.got.plt)
|
||||
*(.igot.plt)
|
||||
.igot.plt 0x0000000000008ec0 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
*(.got)
|
||||
*(.igot)
|
||||
|
||||
.data 0x0000000000008ec0 0x15
|
||||
0x0000000000008ec0 __data_start = .
|
||||
*(.data .data.* .gnu.linkonce.d.*)
|
||||
.data 0x0000000000008ec0 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crti.o
|
||||
.data 0x0000000000008ec0 0x4 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
0x0000000000008ec0 __dso_handle
|
||||
.data 0x0000000000008ec4 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
.data 0x0000000000008ec4 0x0 test_priority.o
|
||||
.data 0x0000000000008ec4 0x11 libserial.o
|
||||
.data 0x0000000000008ed5 0x0 usyscall.o
|
||||
.data 0x0000000000008ed5 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_udivsi3.o)
|
||||
.data 0x0000000000008ed5 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_dvmd_tls.o)
|
||||
.data 0x0000000000008ed5 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
.data 0x0000000000008ed5 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-memset.o)
|
||||
.data 0x0000000000008ed5 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtend.o
|
||||
.data 0x0000000000008ed5 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtn.o
|
||||
|
||||
.data1
|
||||
*(.data1)
|
||||
0x0000000000008ed5 _edata = .
|
||||
[!provide] PROVIDE (edata, .)
|
||||
0x0000000000008ed5 . = .
|
||||
0x0000000000008ed5 __bss_start = .
|
||||
0x0000000000008ed5 __bss_start__ = .
|
||||
|
||||
.bss 0x0000000000008ed8 0x20
|
||||
*(.dynbss)
|
||||
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||
.bss 0x0000000000008ed8 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crti.o
|
||||
.bss 0x0000000000008ed8 0x1c /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
.bss 0x0000000000008ef4 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
.bss 0x0000000000008ef4 0x0 test_priority.o
|
||||
.bss 0x0000000000008ef4 0x4 libserial.o
|
||||
.bss 0x0000000000008ef8 0x0 usyscall.o
|
||||
.bss 0x0000000000008ef8 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_udivsi3.o)
|
||||
.bss 0x0000000000008ef8 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_dvmd_tls.o)
|
||||
.bss 0x0000000000008ef8 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
.bss 0x0000000000008ef8 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-memset.o)
|
||||
.bss 0x0000000000008ef8 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtend.o
|
||||
.bss 0x0000000000008ef8 0x0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtn.o
|
||||
*(COMMON)
|
||||
0x0000000000008ef8 . = ALIGN ((. != 0x0)?0x4:0x1)
|
||||
0x0000000000008ef8 _bss_end__ = .
|
||||
0x0000000000008ef8 __bss_end__ = .
|
||||
0x0000000000008ef8 . = ALIGN (0x4)
|
||||
0x0000000000008ef8 . = SEGMENT_START ("ldata-segment", .)
|
||||
0x0000000000008ef8 . = ALIGN (0x4)
|
||||
0x0000000000008ef8 __end__ = .
|
||||
0x0000000000008ef8 _end = .
|
||||
[!provide] PROVIDE (end, .)
|
||||
|
||||
.stab
|
||||
*(.stab)
|
||||
|
||||
.stabstr
|
||||
*(.stabstr)
|
||||
|
||||
.stab.excl
|
||||
*(.stab.excl)
|
||||
|
||||
.stab.exclstr
|
||||
*(.stab.exclstr)
|
||||
|
||||
.stab.index
|
||||
*(.stab.index)
|
||||
|
||||
.stab.indexstr
|
||||
*(.stab.indexstr)
|
||||
|
||||
.comment 0x0000000000000000 0x7f
|
||||
*(.comment)
|
||||
.comment 0x0000000000000000 0x7f test_priority.o
|
||||
0x80 (size before relaxing)
|
||||
.comment 0x000000000000007f 0x80 libserial.o
|
||||
.comment 0x000000000000007f 0x80 usyscall.o
|
||||
|
||||
.debug
|
||||
*(.debug)
|
||||
|
||||
.line
|
||||
*(.line)
|
||||
|
||||
.debug_srcinfo
|
||||
*(.debug_srcinfo)
|
||||
|
||||
.debug_sfnames
|
||||
*(.debug_sfnames)
|
||||
|
||||
.debug_aranges 0x0000000000000000 0x60
|
||||
*(.debug_aranges)
|
||||
.debug_aranges
|
||||
0x0000000000000000 0x20 test_priority.o
|
||||
.debug_aranges
|
||||
0x0000000000000020 0x20 libserial.o
|
||||
.debug_aranges
|
||||
0x0000000000000040 0x20 usyscall.o
|
||||
|
||||
.debug_pubnames
|
||||
*(.debug_pubnames)
|
||||
|
||||
.debug_info 0x0000000000000000 0x23e8
|
||||
*(.debug_info .gnu.linkonce.wi.*)
|
||||
.debug_info 0x0000000000000000 0x967 test_priority.o
|
||||
.debug_info 0x0000000000000967 0xd7f libserial.o
|
||||
.debug_info 0x00000000000016e6 0xd02 usyscall.o
|
||||
|
||||
.debug_abbrev 0x0000000000000000 0x66d
|
||||
*(.debug_abbrev)
|
||||
.debug_abbrev 0x0000000000000000 0x1cc test_priority.o
|
||||
.debug_abbrev 0x00000000000001cc 0x283 libserial.o
|
||||
.debug_abbrev 0x000000000000044f 0x21e usyscall.o
|
||||
|
||||
.debug_line 0x0000000000000000 0x554
|
||||
*(.debug_line .debug_line.* .debug_line_end)
|
||||
.debug_line 0x0000000000000000 0x17f test_priority.o
|
||||
.debug_line 0x000000000000017f 0x1e1 libserial.o
|
||||
.debug_line 0x0000000000000360 0x1f4 usyscall.o
|
||||
|
||||
.debug_frame 0x0000000000000000 0x3b4
|
||||
*(.debug_frame)
|
||||
.debug_frame 0x0000000000000000 0x50 test_priority.o
|
||||
.debug_frame 0x0000000000000050 0xc8 libserial.o
|
||||
.debug_frame 0x0000000000000118 0x218 usyscall.o
|
||||
.debug_frame 0x0000000000000330 0x20 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_udivsi3.o)
|
||||
.debug_frame 0x0000000000000350 0x34 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
.debug_frame 0x0000000000000384 0x30 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-memset.o)
|
||||
|
||||
.debug_str 0x0000000000000000 0x9a6
|
||||
*(.debug_str)
|
||||
.debug_str 0x0000000000000000 0x5b0 test_priority.o
|
||||
0x640 (size before relaxing)
|
||||
.debug_str 0x00000000000005b0 0x20c libserial.o
|
||||
0x7d4 (size before relaxing)
|
||||
.debug_str 0x00000000000007bc 0x1ea usyscall.o
|
||||
0x825 (size before relaxing)
|
||||
|
||||
.debug_loc
|
||||
*(.debug_loc)
|
||||
|
||||
.debug_macinfo
|
||||
*(.debug_macinfo)
|
||||
|
||||
.debug_weaknames
|
||||
*(.debug_weaknames)
|
||||
|
||||
.debug_funcnames
|
||||
*(.debug_funcnames)
|
||||
|
||||
.debug_typenames
|
||||
*(.debug_typenames)
|
||||
|
||||
.debug_varnames
|
||||
*(.debug_varnames)
|
||||
|
||||
.debug_pubtypes
|
||||
*(.debug_pubtypes)
|
||||
|
||||
.debug_ranges
|
||||
*(.debug_ranges)
|
||||
|
||||
.debug_macro
|
||||
*(.debug_macro)
|
||||
|
||||
.debug_addr
|
||||
*(.debug_addr)
|
||||
|
||||
.stack 0x0000000000080000 0x0
|
||||
0x0000000000080000 _stack = .
|
||||
*(.stack)
|
||||
|
||||
.ARM.attributes
|
||||
0x0000000000000000 0x2b
|
||||
*(.ARM.attributes)
|
||||
.ARM.attributes
|
||||
0x0000000000000000 0x16 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crti.o
|
||||
.ARM.attributes
|
||||
0x0000000000000016 0x30 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
.ARM.attributes
|
||||
0x0000000000000046 0x14 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
.ARM.attributes
|
||||
0x000000000000005a 0x2f test_priority.o
|
||||
.ARM.attributes
|
||||
0x0000000000000089 0x2f libserial.o
|
||||
.ARM.attributes
|
||||
0x00000000000000b8 0x2f usyscall.o
|
||||
.ARM.attributes
|
||||
0x00000000000000e7 0x18 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_udivsi3.o)
|
||||
.ARM.attributes
|
||||
0x00000000000000ff 0x18 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_dvmd_tls.o)
|
||||
.ARM.attributes
|
||||
0x0000000000000117 0x30 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
.ARM.attributes
|
||||
0x0000000000000147 0x30 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-memset.o)
|
||||
.ARM.attributes
|
||||
0x0000000000000177 0x30 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtend.o
|
||||
.ARM.attributes
|
||||
0x00000000000001a7 0x18 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtn.o
|
||||
*(.gnu.attributes)
|
||||
|
||||
.note.gnu.arm.ident
|
||||
*(.note.gnu.arm.ident)
|
||||
|
||||
/DISCARD/
|
||||
*(.note.GNU-stack)
|
||||
*(.gnu_debuglink)
|
||||
*(.gnu.lto_*)
|
||||
OUTPUT(test_priority elf32-littlearm)
|
||||
|
||||
Cross Reference Table
|
||||
|
||||
Symbol File
|
||||
_Jv_RegisterClasses /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
__aeabi_idiv0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_dvmd_tls.o)
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_udivsi3.o)
|
||||
__aeabi_ldiv0 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_dvmd_tls.o)
|
||||
__aeabi_uidiv /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_udivsi3.o)
|
||||
libserial.o
|
||||
__aeabi_uidivmod /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_udivsi3.o)
|
||||
libserial.o
|
||||
__bss_end__ /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
__bss_start__ /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
__deregister_frame_info /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
__dso_handle /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
__init_array_end /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
__init_array_start /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
__libc_fini_array /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
__libc_init_array /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
__preinit_array_end /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
__preinit_array_start /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
__register_frame_info /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crtbegin.o
|
||||
__stack /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
__udivsi3 /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a(_udivsi3.o)
|
||||
_fini /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crti.o
|
||||
_init /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/crti.o
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
|
||||
_mainCRTStartup /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
_start /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
atexit /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
close_session usyscall.o
|
||||
exit usyscall.o
|
||||
test_priority.o
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
get_memblock_info usyscall.o
|
||||
getc libserial.o
|
||||
hardware_init_hook /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
main test_priority.o
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
memset /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-memset.o)
|
||||
/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
mmap usyscall.o
|
||||
libserial.o
|
||||
poll_session usyscall.o
|
||||
printf libserial.o
|
||||
test_priority.o
|
||||
register_irq usyscall.o
|
||||
register_server usyscall.o
|
||||
session usyscall.o
|
||||
set_priority usyscall.o
|
||||
test_priority.o
|
||||
show_cpu usyscall.o
|
||||
show_mem usyscall.o
|
||||
show_task usyscall.o
|
||||
software_init_hook /opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/crt0.o
|
||||
spawn usyscall.o
|
||||
task_heap_base usyscall.o
|
||||
yield usyscall.o
|
||||
@@ -0,0 +1,31 @@
|
||||
ifeq ($(BOARD), imx6q-sabrelite)
|
||||
toolchain ?= arm-none-eabi-
|
||||
user_ldflags = -N -Ttext 0
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||
endif
|
||||
ifeq ($(BOARD), zynq7000-zc702)
|
||||
toolchain ?= arm-xilinx-eabi-
|
||||
user_ldflags = --start-group,-lgcc,-lc,--end-group
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||
#cflags = -Wall -g -std=c11
|
||||
endif
|
||||
cc = ${toolchain}gcc
|
||||
ld = ${toolchain}g++
|
||||
objdump = ${toolchain}objdump
|
||||
|
||||
c_useropts = -O0
|
||||
|
||||
INC_DIR = -I$(KERNEL_ROOT)/services/fs/libfs \
|
||||
-I$(KERNEL_ROOT)/services/fs/fs_server/include \
|
||||
-I$(KERNEL_ROOT)/services/lib/ipc \
|
||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||
-I$(KERNEL_ROOT)/services/app
|
||||
|
||||
libserial: libserial.o stub.o
|
||||
@mv $^ ../../app
|
||||
|
||||
%.o: %.c
|
||||
@echo "cc $^"
|
||||
@${cc} ${cflags} ${c_useropts} ${INC_DIR} -o $@ -c $^
|
||||
|
||||
include $(KERNEL_ROOT)/compiler.mk
|
||||
@@ -0,0 +1,162 @@
|
||||
/*
|
||||
* Copyright (c) 2020 AIIT XUOS Lab
|
||||
* XiUOS is licensed under Mulan PSL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
* You may obtain a copy of Mulan PSL v2 at:
|
||||
* http://license.coscl.org.cn/MulanPSL2
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
/// this file is only used for debug
|
||||
#include "libserial.h"
|
||||
#include "usyscall.h"
|
||||
|
||||
uint32_t Xil_In32(intptr_t Addr)
|
||||
{
|
||||
return *(volatile uint32_t*)Addr;
|
||||
}
|
||||
void Xil_Out32(intptr_t Addr, uint32_t Value)
|
||||
{
|
||||
uint32_t* LocalAddr = (uint32_t*)Addr;
|
||||
*LocalAddr = Value;
|
||||
}
|
||||
#define XUartPs_IsTransmitFull(BaseAddress) \
|
||||
((*(volatile uint32_t*)((BaseAddress) + 0x002CU) & (uint32_t)0x00000010U) == (uint32_t)0x00000010U)
|
||||
#define XUartPs_WriteReg(BaseAddress, RegOffset, RegisterValue) \
|
||||
Xil_Out32((BaseAddress) + (uint32_t)(RegOffset), (uint32_t)(RegisterValue))
|
||||
|
||||
#define XUartPs_ReadReg(BaseAddress, RegOffset) \
|
||||
Xil_In32((BaseAddress) + (uint32_t)(RegOffset))
|
||||
#define XUartPs_IsReceiveData(BaseAddress) \
|
||||
!((Xil_In32((BaseAddress) + 0x002CU) & (uint32_t)0x00000002U) == (uint32_t)0x00000002U)
|
||||
|
||||
uint8_t XUartPs_RecvByte(uint32_t BaseAddress)
|
||||
{
|
||||
uint32_t RecievedByte;
|
||||
/* Wait until there is data */
|
||||
while (!XUartPs_IsReceiveData(BaseAddress)) {
|
||||
;
|
||||
}
|
||||
RecievedByte = XUartPs_ReadReg(BaseAddress, 0x0030U);
|
||||
/* Return the byte received */
|
||||
return (uint8_t)RecievedByte;
|
||||
}
|
||||
|
||||
#define USER_UART_BASE 0x6FFFF000
|
||||
|
||||
static bool init_uart_mmio()
|
||||
{
|
||||
static int mapped = 0;
|
||||
if (mapped == 0) {
|
||||
if (-1 == mmap(USER_UART_BASE, 0xE0001000, 4096, true)) {
|
||||
return false;
|
||||
}
|
||||
mapped = 1;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static void putc(char c)
|
||||
{
|
||||
if (c == '\n') {
|
||||
while (XUartPs_IsTransmitFull(USER_UART_BASE)) {
|
||||
;
|
||||
}
|
||||
|
||||
XUartPs_WriteReg(USER_UART_BASE, 0x0030U, (uint32_t)'\r');
|
||||
}
|
||||
|
||||
while (XUartPs_IsTransmitFull(USER_UART_BASE)) {
|
||||
;
|
||||
}
|
||||
|
||||
XUartPs_WriteReg(USER_UART_BASE, 0x0030U, (uint32_t)c);
|
||||
}
|
||||
|
||||
char getc(void)
|
||||
{
|
||||
if (!init_uart_mmio()) {
|
||||
return 0xFF;
|
||||
}
|
||||
return XUartPs_RecvByte(USER_UART_BASE);
|
||||
}
|
||||
|
||||
static void printint(int xx, int base, int sgn)
|
||||
{
|
||||
static char digits[] = "0123456789ABCDEF";
|
||||
char buf[16];
|
||||
int i, neg;
|
||||
uint32_t x;
|
||||
|
||||
neg = 0;
|
||||
if (sgn && xx < 0) {
|
||||
neg = 1;
|
||||
x = -xx;
|
||||
} else {
|
||||
x = xx;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
do {
|
||||
buf[i++] = digits[x % base];
|
||||
} while ((x /= base) != 0);
|
||||
if (neg)
|
||||
buf[i++] = '-';
|
||||
|
||||
while (--i >= 0)
|
||||
putc(buf[i]);
|
||||
}
|
||||
|
||||
// Print to usart. Only understands %d, %x, %p, %s.
|
||||
void printf(char* fmt, ...)
|
||||
{
|
||||
if (!init_uart_mmio()) {
|
||||
return;
|
||||
}
|
||||
char* s;
|
||||
int c, i, state;
|
||||
uint32_t* ap;
|
||||
|
||||
state = 0;
|
||||
ap = (uint32_t*)(void*)&fmt + 1;
|
||||
for (i = 0; fmt[i]; i++) {
|
||||
c = fmt[i] & 0xff;
|
||||
if (state == 0) {
|
||||
if (c == '%') {
|
||||
state = '%';
|
||||
} else {
|
||||
putc(c);
|
||||
}
|
||||
} else if (state == '%') {
|
||||
if (c == 'd') {
|
||||
printint(*ap, 10, 1);
|
||||
ap++;
|
||||
} else if (c == 'x' || c == 'p') {
|
||||
printint(*ap, 16, 0);
|
||||
ap++;
|
||||
} else if (c == 's') {
|
||||
s = (char*)*ap;
|
||||
ap++;
|
||||
if (s == 0)
|
||||
s = "(null)";
|
||||
while (*s != 0) {
|
||||
putc(*s);
|
||||
s++;
|
||||
}
|
||||
} else if (c == 'c') {
|
||||
putc(*ap);
|
||||
ap++;
|
||||
} else if (c == '%') {
|
||||
putc(c);
|
||||
} else {
|
||||
// Unknown % sequence. Print it to draw attention.
|
||||
putc('%');
|
||||
putc(c);
|
||||
}
|
||||
state = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (c) 2020 AIIT XUOS Lab
|
||||
* XiUOS is licensed under Mulan PSL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
* You may obtain a copy of Mulan PSL v2 at:
|
||||
* http://license.coscl.org.cn/MulanPSL2
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
/// this file is only used for debug
|
||||
#pragma once
|
||||
|
||||
void printf(char* fmt, ...);
|
||||
|
||||
char getc();
|
||||
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
* Copyright (c) 2020 AIIT XUOS Lab
|
||||
* XiUOS is licensed under Mulan PSL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
* You may obtain a copy of Mulan PSL v2 at:
|
||||
* http://license.coscl.org.cn/MulanPSL2
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
// _exit: 用于退出程序
|
||||
void _exit(int status)
|
||||
{
|
||||
while (1) { }
|
||||
}
|
||||
|
||||
// _sbrk: 用于增加程序的数据空间
|
||||
void* _sbrk(ptrdiff_t incr)
|
||||
{
|
||||
extern char end; /* Defined by the linker */
|
||||
static char* heap_end;
|
||||
char* prev_heap_end;
|
||||
|
||||
if (heap_end == 0) {
|
||||
heap_end = &end;
|
||||
}
|
||||
prev_heap_end = heap_end;
|
||||
|
||||
// 在这里,你应该添加一些检查来确保堆不会与栈或其他内存区域冲突
|
||||
// 例如,检查 incr 是否会导致堆超出预定的内存区域
|
||||
|
||||
heap_end += incr;
|
||||
return (void*)prev_heap_end;
|
||||
}
|
||||
|
||||
// _write: 用于将数据写入文件描述符
|
||||
ssize_t _write(int file, const void* ptr, size_t len)
|
||||
{
|
||||
// 在这里,你需要实现将数据写入文件描述符的逻辑
|
||||
// 如果你的系统不支持文件系统,你可以将数据发送到串口或其他输出
|
||||
|
||||
return len; // 假设所有数据都被写入
|
||||
}
|
||||
|
||||
// _close: 用于关闭文件描述符
|
||||
int _close(int file)
|
||||
{
|
||||
return -1; // 表示失败,因为没有实际关闭文件的功能
|
||||
}
|
||||
|
||||
// _fstat: 用于获取文件状态
|
||||
int _fstat(int file, struct stat* st)
|
||||
{
|
||||
return 0; // 表示成功
|
||||
}
|
||||
|
||||
// _isatty: 检查文件描述符是否指向TTY设备
|
||||
int _isatty(int file)
|
||||
{
|
||||
return 1; // 表示是TTY设备
|
||||
}
|
||||
|
||||
// _lseek: 用于重新定位文件读/写的位置
|
||||
off_t _lseek(int file, off_t offset, int whence)
|
||||
{
|
||||
return -1; // 表示失败,因为不支持文件定位
|
||||
}
|
||||
|
||||
// _read: 用于从文件描述符读取数据
|
||||
ssize_t _read(int file, void* ptr, size_t len)
|
||||
{
|
||||
return 0; // 表示没有数据被读取
|
||||
}
|
||||
|
||||
// _kill: 发送信号给进程
|
||||
int _kill(int pid, int sig)
|
||||
{
|
||||
return -1; // 表示失败,因为不支持信号
|
||||
}
|
||||
|
||||
// _getpid: 获取进程ID
|
||||
int _getpid()
|
||||
{
|
||||
return 1; // 返回假设的进程ID
|
||||
}
|
||||
@@ -1,19 +1,28 @@
|
||||
ifeq ($(BOARD), imx6q-sabrelite)
|
||||
toolchain ?= arm-none-eabi-
|
||||
user_ldflags = -N -Ttext 0
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
||||
endif
|
||||
ifeq ($(BOARD), zynq7000-zc702)
|
||||
toolchain ?= arm-xilinx-eabi-
|
||||
user_ldflags = --start-group,-lgcc,-lc,--end-group
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||
#cflags = -Wall -g -std=c11
|
||||
endif
|
||||
cc = ${toolchain}gcc
|
||||
ld = ${toolchain}g++
|
||||
objdump = ${toolchain}objdump
|
||||
user_ldflags = -N -Ttext 0
|
||||
|
||||
cflags = -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
||||
c_useropts = -O0
|
||||
|
||||
INC_DIR = -I$(KERNEL_ROOT)/services/fs/libfs \
|
||||
-I$(KERNEL_ROOT)/services/fs/fs_server/include \
|
||||
-I$(KERNEL_ROOT)/services/lib/ipc \
|
||||
-I$(KERNEL_ROOT)/services/boards/imx6q-sabrelite
|
||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||
-I$(KERNEL_ROOT)/services/app
|
||||
|
||||
fs_server: fs_server.o fs.o block_io.o
|
||||
@mv $^ ../../boards/imx6q-sabrelite
|
||||
@mv $^ ../../app
|
||||
|
||||
%.o: %.c
|
||||
@echo "cc $^"
|
||||
|
||||
@@ -63,11 +63,11 @@ int IPC_DO_SERVE_FUNC(Ipc_ls)(char* path)
|
||||
}
|
||||
|
||||
if (!(ip = InodeSeek(dp, path))) {
|
||||
printf("ls:find target Inode failed\n");
|
||||
printf("ls: find target Inode failed, ip: %x(%d), dp: %x(%d)\n", ip, ip->inum, dp, dp->inum);
|
||||
return -1;
|
||||
}
|
||||
if (ip->type != T_DIR) {
|
||||
printf("ls:not a dir\n");
|
||||
printf("ls: not a dir\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -31,15 +31,15 @@ struct double_list_node {
|
||||
#define DOUBLE_LIST_ENTRY(item, type, member) \
|
||||
CONTAINER_OF(item, type, member)
|
||||
|
||||
#define DOUBLE_LIST_FOR_EACH_ENTRY(item, head, member) \
|
||||
for (item = DOUBLE_LIST_ENTRY((head)->next, typeof(*item), member); \
|
||||
&item->member != (head); \
|
||||
item = DOUBLE_LIST_ENTRY(item->member.next, typeof(*item), member))
|
||||
#define DOUBLE_LIST_FOR_EACH_ENTRY(item, head, member) \
|
||||
for (item = DOUBLE_LIST_ENTRY((head)->next, __typeof__(*item), member); \
|
||||
&item->member != (head); \
|
||||
item = DOUBLE_LIST_ENTRY(item->member.next, __typeof__(*item), member))
|
||||
|
||||
#define DOUBLE_LIST_FOR_EACH_ENTRY_REVERSE(item, head, member) \
|
||||
for (item = DOUBLE_LIST_ENTRY((head)->prev, typeof(*item), member); \
|
||||
&item->member != (head); \
|
||||
item = DOUBLE_LIST_ENTRY(item->member.prev, typeof(*item), member))
|
||||
#define DOUBLE_LIST_FOR_EACH_ENTRY_REVERSE(item, head, member) \
|
||||
for (item = DOUBLE_LIST_ENTRY((head)->prev, __typeof__(*item), member); \
|
||||
&item->member != (head); \
|
||||
item = DOUBLE_LIST_ENTRY(item->member.prev, __typeof__(*item), member))
|
||||
|
||||
__attribute__((always_inline)) static void inline doubleListNodeInit(struct double_list_node* list)
|
||||
{
|
||||
|
||||
@@ -1,18 +1,27 @@
|
||||
ifeq ($(BOARD), imx6q-sabrelite)
|
||||
toolchain ?= arm-none-eabi-
|
||||
user_ldflags = -N -Ttext 0
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
||||
endif
|
||||
ifeq ($(BOARD), zynq7000-zc702)
|
||||
toolchain ?= arm-xilinx-eabi-
|
||||
user_ldflags = --start-group,-lgcc,-lc,--end-group
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||
#cflags = -Wall -g -std=c11
|
||||
endif
|
||||
cc = ${toolchain}gcc
|
||||
ld = ${toolchain}g++
|
||||
objdump = ${toolchain}objdump
|
||||
user_ldflags = -N -Ttext 0
|
||||
|
||||
cflags = -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
||||
c_useropts = -O0
|
||||
|
||||
INC_DIR = -I$(KERNEL_ROOT)/services/fs/libfs \
|
||||
-I$(KERNEL_ROOT)/services/lib/ipc \
|
||||
-I$(KERNEL_ROOT)/services/boards/imx6q-sabrelite
|
||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||
-I$(KERNEL_ROOT)/services/app
|
||||
|
||||
fs_server: libfs_to_client.o
|
||||
@mv $^ ../../boards/imx6q-sabrelite
|
||||
@mv $^ ../../app
|
||||
|
||||
%.o: %.c
|
||||
@echo "cc $^"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
SRC_DIR := ipc memory
|
||||
SRC_DIR := ipc
|
||||
|
||||
include $(KERNEL_ROOT)/compiler.mk
|
||||
|
||||
|
||||
@@ -1,16 +1,27 @@
|
||||
ifeq ($(BOARD), imx6q-sabrelite)
|
||||
toolchain ?= arm-none-eabi-
|
||||
user_ldflags = -N -Ttext 0
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
||||
endif
|
||||
ifeq ($(BOARD), zynq7000-zc702)
|
||||
toolchain ?= arm-xilinx-eabi-
|
||||
user_ldflags = --start-group,-lgcc,-lc,--end-group
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||
#cflags = -Wall -g -std=c11
|
||||
endif
|
||||
cc = ${toolchain}gcc
|
||||
ld = ${toolchain}g++
|
||||
objdump = ${toolchain}objdump
|
||||
user_ldflags = -N -Ttext 0
|
||||
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
||||
c_useropts = -O0
|
||||
|
||||
INC_DIR = -I$(KERNEL_ROOT)/services/shell/letter-shell -I$(KERNEL_ROOT)/services/lib/ipc -I$(KERNEL_ROOT)/services/boards/imx6q-sabrelite
|
||||
INC_DIR = -I$(KERNEL_ROOT)/services/shell/letter-shell \
|
||||
-I$(KERNEL_ROOT)/services/lib/ipc \
|
||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||
-I$(KERNEL_ROOT)/services/app
|
||||
|
||||
all: libipc.o session.o
|
||||
@mv $^ ../../boards/imx6q-sabrelite
|
||||
@mv $^ ../../app
|
||||
|
||||
%.o: %.c
|
||||
@echo "cc $^"
|
||||
|
||||
@@ -88,8 +88,7 @@ struct IpcNode {
|
||||
|
||||
#define _IPC_INSERT_SERVE(interface) [interface] = IPC_SERVE(interface)
|
||||
#define IPC_SERVER_REGISTER_INTERFACES(ipc_node_name, num_interfaces, ...) \
|
||||
static struct IpcNode ipc_node_name = (struct IpcNode) \
|
||||
{ \
|
||||
static struct IpcNode ipc_node_name = { \
|
||||
.interfaces = { \
|
||||
_VA_FRONT_WRAP_ARG##num_interfaces(_IPC_INSERT_SERVE, __VA_ARGS__), \
|
||||
}, \
|
||||
|
||||
@@ -1,13 +1,19 @@
|
||||
ifeq ($(BOARD), imx6q-sabrelite)
|
||||
toolchain ?= arm-none-eabi-
|
||||
endif
|
||||
ifeq ($(BOARD), zynq7000-zc702)
|
||||
toolchain ?= arm-xilinx-eabi-
|
||||
endif
|
||||
cc = ${toolchain}gcc
|
||||
ld = ${toolchain}g++
|
||||
objdump = ${toolchain}objdump
|
||||
user_ldflags = -N -Ttext 0
|
||||
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||
c_useropts = -O0
|
||||
|
||||
INC_DIR = -I$(KERNEL_ROOT)/services/boards/imx6q-sabrelite \
|
||||
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||
-I$(KERNEL_ROOT)/services/lib/ipc
|
||||
|
||||
all:
|
||||
|
||||
@@ -1,18 +1,27 @@
|
||||
ifeq ($(BOARD), imx6q-sabrelite)
|
||||
toolchain ?= arm-none-eabi-
|
||||
user_ldflags = -N -Ttext 0
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||
endif
|
||||
ifeq ($(BOARD), zynq7000-zc702)
|
||||
toolchain ?= arm-xilinx-eabi-
|
||||
user_ldflags = --start-group,-lgcc,-lc,--end-group
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie
|
||||
#cflags = -Wall -g -std=c11 -Wno-unused
|
||||
endif
|
||||
cc = ${toolchain}gcc
|
||||
ld = ${toolchain}g++
|
||||
objdump = ${toolchain}objdump
|
||||
# user_ldflags = -N -Ttext 0
|
||||
|
||||
cflags = -std=c11 -march=armv7-a -mtune=cortex-a9 -nostdlib -nodefaultlibs -mfloat-abi=soft -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -ggdb -Wno-unused -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie
|
||||
c_useropts = -O0
|
||||
|
||||
INC_DIR = -I$(KERNEL_ROOT)/services/boards/imx6q-sabrelite -I$(KERNEL_ROOT)/services/lib/ipc -I$(KERNEL_ROOT)/services/fs/libfs
|
||||
INC_DIR = -I$(KERNEL_ROOT)/services/app \
|
||||
-I$(KERNEL_ROOT)/services/lib/ipc \
|
||||
-I$(KERNEL_ROOT)/services/boards/$(BOARD) \
|
||||
-I$(KERNEL_ROOT)/services/fs/libfs
|
||||
|
||||
all: shell_cmd_list.o shell_ext.o shell.o
|
||||
@mv shell_cmd_list.o ../../boards/imx6q-sabrelite
|
||||
@mv shell_ext.o ../../boards/imx6q-sabrelite
|
||||
@mv shell.o ../../boards/imx6q-sabrelite
|
||||
@mv $^ ../../app
|
||||
|
||||
shell_cmd_list.o: shell_cmd_list.c
|
||||
@echo "cc shell_cmd_list"
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user