Code Monkey home page Code Monkey logo

yiyiya's Introduction

YiYiYa

YiYiYa is an os

https://github.com/evilbinary/YiYiYa

使用

编译

1、编译工具安装

提前安装 yymake、qemu 开发环境文档

2、编译平台配置

配置编译目标平台 xenv/config.py配置

3、运行编译命令

ya -m debug

运行

ya -m debug -r qemu

开发

具体见文档:开发文档

建议

1、欢迎加入一起讨论开发os

2、很多人一开始死在boot上,建议可以先跳过boot,后面在看

3、更新的比较频繁,可能导致编译不通过,可以自己修改一下。

截图

v3s.mp4
lvgl.mp4

开发

qq群 26893532 可以加入一起讨论学习,如果找不到该群,使用扫码加入。

https://github.com/evilbinary/YiYiYa

项目捐赠

喜欢就支持一下

捐赠人 金额¥ 日期
BiscuitOS 200 2024-04-26
xiekeyi98 9.9 2022-03-25
hulang1024 12 2022-02-11
**焱 0.01 2022-02-11
懒懒 10 2022-02-11
fix-eua.dax 30 2022-02-11
yyz639 2.5 2022-02-11
cm 30 2022-02-10
SynestiaOS 66.66 2022-02-10
开心的派大星 19 2022-02-10
眼眸流转 100 2022-02-10
巫云 25 2021-05-08

参考资料

https://wiki.osdev.org

https://zh.wikipedia.org/wiki/%E8%BD%AF%E7%9B%98

64-ia-32-architectures-software-developer-vol-3a-part-1-manual.pdf

yiyiya's People

Contributors

evilbinary avatar ysh329 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yiyiya's Issues

Arch Linux 编译报错

Arch Linux 编译报错。鸭写的运行说明太简单了,简单出问题都不知道是那的问题

❯ scons -c       
scons: Reading SConscript files ...
welcome to yiyiya os build
your select platform: raspi2 arch: armv7-a  support archs: ['armv5', 'armv6', 'armv7', 'armv7e-m', 'armv7-a', 'armv8-a'] build env:Linux
scons version: 4.5.2 compiler: arm-none-eabi-gcc date: 2023-08-25 19:29:21.846772
file ../duck/init/kernel not exist
Number of parallel build jobs: 1
scons: done reading SConscript files.
scons: Cleaning targets ...
scons: done cleaning targets.

taotieren in 🌐 archlinux in YiYiYa on  test [✘!] took 3s 
❯ scons -j8                       
scons: Reading SConscript files ...
welcome to yiyiya os build
your select platform: raspi2 arch: armv7-a  support archs: ['armv5', 'armv6', 'armv7', 'armv7e-m', 'armv7-a', 'armv8-a'] build env:Linux
scons version: 4.5.2 compiler: arm-none-eabi-gcc date: 2023-08-25 19:29:32.030806
file ../duck/init/kernel not exist
Number of parallel build jobs: 8
scons: done reading SConscript files.
scons: Building targets ...
arm-none-eabi-gcc -o app/cmd/cat.o -c -fstack-protector -g -DDUCK -DARM -DARMV7_A -nostdlib -nostdinc -fPIC -fno-builtin -std=c99 -std=gnu99 -w -DRASPI2 -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=softfp -nostdlib -nostdinc --specs=nosys.specs -no-pie -fno-pic -Llibgcc.a -DLIBC_POSIX -DPOSIX_MODULE -DLOADER_MODULE -DMUSL_MODULE -DIPC_MODULE -DGAGA_MODULE -DLOG_MODULE -DPTY_MODULE -D__LIB_MUSL__ -Wl,-dynamic-linker,/lib/ld-musl-armv7-a.so.1 -Ieggs/libmusl -Ieggs/libmusl/include -Ieggs/libmusl/obj/include -Ieggs/libmusl/arch/generic -Ieggs/libmusl/arch/generic/bits -Ieggs/libmusl/arch/arm -Ieggs/libmusl/arch/arm/bits app/cmd/cat.c
arm-none-eabi-gcc: fatal error: cannot read spec file 'nosys.specs': No such file or directory
compilation terminated.
arm-none-eabi-gcc -o app/cmd/date.o -c -fstack-protector -g -DDUCK -DARM -DARMV7_A -nostdlib -nostdinc -fPIC -fno-builtin -std=c99 -std=gnu99 -w -DRASPI2 -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=softfp -nostdlib -nostdinc --specs=nosys.specs -no-pie -fno-pic -Llibgcc.a -DLIBC_POSIX -DPOSIX_MODULE -DLOADER_MODULE -DMUSL_MODULE -DIPC_MODULE -DGAGA_MODULE -DLOG_MODULE -DPTY_MODULE -D__LIB_MUSL__ -Wl,-dynamic-linker,/lib/ld-musl-armv7-a.so.1 -Ieggs/libmusl -Ieggs/libmusl/include -Ieggs/libmusl/obj/include -Ieggs/libmusl/arch/generic -Ieggs/libmusl/arch/generic/bits -Ieggs/libmusl/arch/arm -Ieggs/libmusl/arch/arm/bits app/cmd/date.c
arm-none-eabi-gcc: fatal error: cannot read spec file 'nosys.specs': No such file or directory
compilation terminated.
arm-none-eabi-gcc -o app/cmd/echo.o -c -fstack-protector -g -DDUCK -DARM -DARMV7_A -nostdlib -nostdinc -fPIC -fno-builtin -std=c99 -std=gnu99 -w -DRASPI2 -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=softfp -nostdlib -nostdinc --specs=nosys.specs -no-pie -fno-pic -Llibgcc.a -DLIBC_POSIX -DPOSIX_MODULE -DLOADER_MODULE -DMUSL_MODULE -DIPC_MODULE -DGAGA_MODULE -DLOG_MODULE -DPTY_MODULE -D__LIB_MUSL__ -Wl,-dynamic-linker,/lib/ld-musl-armv7-a.so.1 -Ieggs/libmusl -Ieggs/libmusl/include -Ieggs/libmusl/obj/include -Ieggs/libmusl/arch/generic -Ieggs/libmusl/arch/generic/bits -Ieggs/libmusl/arch/arm -Ieggs/libmusl/arch/arm/bits app/cmd/echo.c
arm-none-eabi-gcc -o app/cmd/hexdump.o -c -fstack-protector -g -DDUCK -DARM -DARMV7_A -nostdlib -nostdinc -fPIC -fno-builtin -std=c99 -std=gnu99 -w -DRASPI2 -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=softfp -nostdlib -nostdinc --specs=nosys.specs -no-pie -fno-pic -Llibgcc.a -DLIBC_POSIX -DPOSIX_MODULE -DLOADER_MODULE -DMUSL_MODULE -DIPC_MODULE -DGAGA_MODULE -DLOG_MODULE -DPTY_MODULE -D__LIB_MUSL__ -Wl,-dynamic-linker,/lib/ld-musl-armv7-a.so.1 -Ieggs/libmusl -Ieggs/libmusl/include -Ieggs/libmusl/obj/include -Ieggs/libmusl/arch/generic -Ieggs/libmusl/arch/generic/bits -Ieggs/libmusl/arch/arm -Ieggs/libmusl/arch/arm/bits app/cmd/hexdump.c
arm-none-eabi-gcc: fatal error: cannot read spec file 'nosys.specs': No such file or directory
compilation terminated.
arm-none-eabi-gcc: fatal error: cannot read spec file 'nosys.specs': No such file or directory
compilation terminated.
arm-none-eabi-gcc -o app/cmd/kill.o -c -fstack-protector -g -DDUCK -DARM -DARMV7_A -nostdlib -nostdinc -fPIC -fno-builtin -std=c99 -std=gnu99 -w -DRASPI2 -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=softfp -nostdlib -nostdinc --specs=nosys.specs -no-pie -fno-pic -Llibgcc.a -DLIBC_POSIX -DPOSIX_MODULE -DLOADER_MODULE -DMUSL_MODULE -DIPC_MODULE -DGAGA_MODULE -DLOG_MODULE -DPTY_MODULE -D__LIB_MUSL__ -Wl,-dynamic-linker,/lib/ld-musl-armv7-a.so.1 -Ieggs/libmusl -Ieggs/libmusl/include -Ieggs/libmusl/obj/include -Ieggs/libmusl/arch/generic -Ieggs/libmusl/arch/generic/bits -Ieggs/libmusl/arch/arm -Ieggs/libmusl/arch/arm/bits app/cmd/kill.c
arm-none-eabi-gcc: fatal error: cannot read spec file 'nosys.specs': No such file or directory
compilation terminated.
arm-none-eabi-gcc -o app/cmd/ls.o -c -fstack-protector -g -DDUCK -DARM -DARMV7_A -nostdlib -nostdinc -fPIC -fno-builtin -std=c99 -std=gnu99 -w -DRASPI2 -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=softfp -nostdlib -nostdinc --specs=nosys.specs -no-pie -fno-pic -Llibgcc.a -DLIBC_POSIX -DPOSIX_MODULE -DLOADER_MODULE -DMUSL_MODULE -DIPC_MODULE -DGAGA_MODULE -DLOG_MODULE -DPTY_MODULE -D__LIB_MUSL__ -Wl,-dynamic-linker,/lib/ld-musl-armv7-a.so.1 -Ieggs/libmusl -Ieggs/libmusl/include -Ieggs/libmusl/obj/include -Ieggs/libmusl/arch/generic -Ieggs/libmusl/arch/generic/bits -Ieggs/libmusl/arch/arm -Ieggs/libmusl/arch/arm/bits app/cmd/ls.c
arm-none-eabi-gcc: fatal error: cannot read spec file 'nosys.specs': No such file or directory
compilation terminated.
arm-none-eabi-gcc -o app/cmd/shell.o -c -fstack-protector -g -DDUCK -DARM -DARMV7_A -nostdlib -nostdinc -fPIC -fno-builtin -std=c99 -std=gnu99 -w -DRASPI2 -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=softfp -nostdlib -nostdinc --specs=nosys.specs -no-pie -fno-pic -Llibgcc.a -DLIBC_POSIX -DPOSIX_MODULE -DLOADER_MODULE -DMUSL_MODULE -DIPC_MODULE -DGAGA_MODULE -DLOG_MODULE -DPTY_MODULE -D__LIB_MUSL__ -Wl,-dynamic-linker,/lib/ld-musl-armv7-a.so.1 -Ieggs/libmusl -Ieggs/libmusl/include -Ieggs/libmusl/obj/include -Ieggs/libmusl/arch/generic -Ieggs/libmusl/arch/generic/bits -Ieggs/libmusl/arch/arm -Ieggs/libmusl/arch/arm/bits app/cmd/shell.c
arm-none-eabi-gcc: fatal error: cannot read spec file 'nosys.specs': No such file or directory
compilation terminated.
scons: *** [app/cmd/cat.o] Error 1
arm-none-eabi-gcc -o app/cmd/touch.o -c -fstack-protector -g -DDUCK -DARM -DARMV7_A -nostdlib -nostdinc -fPIC -fno-builtin -std=c99 -std=gnu99 -w -DRASPI2 -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=softfp -nostdlib -nostdinc --specs=nosys.specs -no-pie -fno-pic -Llibgcc.a -DLIBC_POSIX -DPOSIX_MODULE -DLOADER_MODULE -DMUSL_MODULE -DIPC_MODULE -DGAGA_MODULE -DLOG_MODULE -DPTY_MODULE -D__LIB_MUSL__ -Wl,-dynamic-linker,/lib/ld-musl-armv7-a.so.1 -Ieggs/libmusl -Ieggs/libmusl/include -Ieggs/libmusl/obj/include -Ieggs/libmusl/arch/generic -Ieggs/libmusl/arch/generic/bits -Ieggs/libmusl/arch/arm -Ieggs/libmusl/arch/arm/bits app/cmd/touch.c
scons: *** [app/cmd/date.o] Error 1
scons: *** [app/cmd/echo.o] Error 1
scons: *** [app/cmd/hexdump.o] Error 1
scons: *** [app/cmd/kill.o] Error 1
scons: *** [app/cmd/ls.o] Error 1
scons: *** [app/cmd/shell.o] Error 1
arm-none-eabi-gcc: fatal error: cannot read spec file 'nosys.specs': No such file or directory
compilation terminated.
scons: *** [app/cmd/touch.o] Error 1
scons: building terminated because of errors.

xenv/config.py 配置文件

# coding:utf-8
# *******************************************************************
# * Copyright 2021-2080 evilbinary
# * 作者: evilbinary on 01/01/20
# * 邮箱: [email protected]
# ********************************************************************
# default libc 默认libc 选择
default_libc = 'libmusl'  # libmusl libc libnewlib

# board select platform,选择你要编译的平台
#riscv-virt dmulator i386-pc v3s raspi2 esp32 stm32f4xx raspi3 rk3128 rk3288 cubieboard2 dummy rk3288 orangepi-pc
platform = 'raspi2'

# 构建应用
default_apps = [
                'cmd','gui','hello', 'test','unitest',
                'microui', 'etk',  'lvgl', 'track',
                 'sdl2', 'infones', 'launcher', 'mgba', 
                 'lua', 'scheme', 'quickjs', 'gnuboy',
                 'watch','gmenu2x','monogui',
                #  'sdlmine',
                 'sdl',
                 'xtrack',
                 ]

#构建的module
modules=['posix','loader','musl','ipc','gaga','log','pty'] #'musl','gaga','ipc','pty','log','debug','ewok'


# gcc path,这里是默认的gcc配置,使用的时候可以启用一下面配置实例注释
CC_PREFIX = ''
CC_PATH = ''
CC_LIB_PATH = ''
CC = 'gcc'
LD = 'ld'
AR = 'ar'
AS = 'as'
CXX = 'cxx'
STRIP = 'strip'
RANLIB = 'ranlib'
OBJCOPY = 'objcopy'
CFLAGS = ''
ARFLAGS = 'rc'
OBJCOPYFLAGS = ' -S -g'
LINKFLAGS = '-nostdlib -nostartfiles -e _start  -g '
LINKLD = 'link-'+platform+'.ld'+ '' # -Map=kernel.map 
SINGLE_KERNEL = False
ASFLAGS=''
LDFLAGS=''
CXXFLAGS=''

# ******************************************************************** #

# oxs x86 duck 配置实例
# CC_PREFIX='i386-elf-'
# CC=CC_PREFIX+'gcc'
# CC_LIB_PATH ='/opt/local/lib/gcc/i386-elf/9.2.0/'
# AR=CC_PREFIX+'ar'
# LD=CC_PREFIX+'ld'
# AS=CC_PREFIX+'as'
# OBJCOPY=CC_PREFIX+'objcopy'
# RANLIB=CC_PREFIX+'ranlib'
# CFLAGS='-march=i486'

# LINKLD='-Map=kernel.map -T xlinker/link-dmulator.ld'

# default_apps=[]

# osx arm 配置实例

CC_PATH = ''
CC_PREFIX = 'arm-none-eabi-'
CC_LIB_PATH = '/usr/lib/gcc/arm-none-eabi/13.2.0/' #/opt/local/lib/gcc/arm-none-eabi/9.2.0/
CC = CC_PREFIX+'gcc'
CXX = CC_PREFIX+'g++'
AR = CC_PREFIX+'ar'
LD = CC_PREFIX+'ld'
AS = CC_PREFIX+'as'
OBJCOPY = CC_PREFIX+'objcopy'
RANLIB = CC_PREFIX+'ranlib'
CFLAGS = '-fstack-protector -g' #-fstack-protector -mapcs-frame mov ip, sp 特权模式下 -fstack-protector   -fstack-protector-all  -DMALLOC_TRACE -fno-omit-frame-pointer
LDFLAGS=' '
LINKLD = 'link-'+platform+'.ld'+ '' # -Map=kernel.map 
SINGLE_KERNEL = False

# default_apps=[]

# # osx aarch64 配置实例

# CC_PATH = ''
# CC_PREFIX = 'aarch64-none-elf-'
# CC_LIB_PATH = '' #/opt/local/lib/gcc/arm-none-eabi/9.2.0/
# CC = CC_PREFIX+'gcc'
# CXX = CC_PREFIX+'g++'
# AR = CC_PREFIX+'ar'
# LD = CC_PREFIX+'ld'
# AS = CC_PREFIX+'as'
# OBJCOPY = CC_PREFIX+'objcopy'
# RANLIB = CC_PREFIX+'ranlib'
# CFLAGS = '-fstack-protector' #-fstack-protector -mapcs-frame mov ip, sp 特权模式下 -fstack-protector   -fstack-protector-all  -DMALLOC_TRACE -fno-omit-frame-pointer
# LDFLAGS=' '
# LINKLD = 'link-'+platform+'.ld'+ '' # -Map=kernel.map 
# SINGLE_KERNEL = False
# default_apps = []


# osx riscv 配置实例

# CC_PATH = ''
# CC_PREFIX = 'riscv64-unknown-elf-'
# CC_LIB_PATH = ''
# CC = CC_PREFIX+'gcc'
# AR = CC_PREFIX+'ar'
# LD = CC_PREFIX+'ld'
# AS = CC_PREFIX+'as'
# OBJCOPY = CC_PREFIX+'objcopy'
# RANLIB = CC_PREFIX+'ranlib'
# CFLAGS = ' -DSBI -fstack-protector -nostdlib -nostdinc  -fno-builtin -mcmodel=medany  -march=rv32imaczicsr -mabi=ilp32 -g -Wall' #-fstack-protector -mapcs-frame mov ip, sp 特权模式下 -fstack-protector   -fstack-protector-all  -DMALLOC_TRACE -fno-omit-frame-pointer
# LDFLAGS='  -nostdlib -march=rv32imaczicsr -mabi=ilp32  -mcmodel=medany '
# LINKFLAGS='   '

# LINKLD = 'link-'+platform+'-sbi.ld'+ '' # -Map=kernel.map 
# ASFLAGS= ' -march=rv32imaczicsr -mabi=ilp32 '
# SINGLE_KERNEL= True

# default_apps = []

# osx armv7 配置实例

# CC_PATH = ''
# CC_PREFIX = 'arm-none-eabi-'
# CC_LIB_PATH = ''
# CC = CC_PREFIX+'gcc'
# AR = CC_PREFIX+'ar'
# LD = CC_PREFIX+'ld'
# AS = CC_PREFIX+'as'
# OBJCOPY = CC_PREFIX+'objcopy'
# RANLIB = CC_PREFIX+'ranlib'
# CFLAGS = '-DSTM32F401xC -fstack-protector -nostdlib -nostdinc  -fno-builtin' #-fstack-protector -mapcs-frame -fstack-protector   -fstack-protector-all  -DMALLOC_TRACE -fno-omit-frame-pointer -DSTM32F401xC -DSTM32F429xx
# LDFLAGS=' -nostdlib '
# LINKLD = 'link-'+platform+'.ld'+ ' -Wl,-Map=kernel.map ' # -Map=kernel.map 
# SINGLE_KERNEL= True #单个文件 kernel.elf

# default_apps = []


# osx i668 配置实例

# CC_PREFIX='i686-elf-'
# CC='i686-elf-gcc'
# CXX = 'i686-elf-g++'
# CC_LIB_PATH ='/usr/local/opt/i686-elf-gcc/lib/gcc/i686-elf/13.1.0/' #port install lib path /opt/local/lib/gcc/i686-elf/9.2.0/
# AR='i686-elf-ar'
# LD='i686-elf-ld'
# AS='i686-elf-as'
# OBJCOPY='i686-elf-objcopy'
# RANLIB='i686-elf-ranlib'
# CFLAGS='-march=i686 ' #-DMALLOC_TRACE -fsanitize=leak  -fsanitize=address -lasan -fno-omit-frame-pointer
# LDFLAGS=' '
# LINKLD = 'link.ld'+ ' -Xlinker -Map=kernel.map ' # 

# default_libc = 'libmusl'
# default_apps = True


# osx x86-64 for demulator 配置实例

# CC_PREFIX=''
# CC='gcc-mp-8'
# CXX = 'gcc-mp-8'
# CC_LIB_PATH ='/opt/local/lib/gcc/x86_64-elf/9.2.0/'
# AR='gcc-ar-mp-8'
# LD='i386-elf-ld'
# AS='i386-elf-as'
# OBJCOPY='i386-elf-objcopy'
# RANLIB='i386-elf-ranlib'
# CFLAGS=' ' #-DMALLOC_TRACE -fsanitize=leak  -fsanitize=address -lasan -fno-omit-frame-pointer
# LDFLAGS=' '
# LINKLD = '' # link.ld'+ ' -Xlinker -Map=kernel.map 

# default_libc = 'libmusl'
# default_apps = []

# clang
# CC_PREFIX=''
# CC='gcc -m32 '
# CXX = 'gcc -m32 '
# CC_LIB_PATH =''
# AR='ar'
# LD='ld'
# AS='as'
# OBJCOPY=''
# RANLIB='ranlib'
# CFLAGS=' -I/usr/include/ -D_XOPEN_SOURCE' #-DMALLOC_TRACE -fsanitize=leak  -fsanitize=address -lasan -fno-omit-frame-pointer
# LDFLAGS=''
# LINKLD = '' # link.ld'+ ' -Xlinker -Map=kernel.map
# ARFLAGS='-rv'
# LINKFLAGS = '-e start  -g '

# default_libc = 'libmusl'
# default_apps = []



# windows arm 配置实例

# CC_PATH=''
# CC_PREFIX='arm-none-eabi-'
# CC_LIB_PATH='D:\\Program Files\\gcc-arm-none-eabi-9\\lib\\gcc\\arm-none-eabi\\9.2.1\\'
# CC = CC_PREFIX+'gcc'
# AR = CC_PREFIX+'ar'
# LD = CC_PREFIX+'ld'
# AS = CC_PREFIX+'as'
# OBJCOPY = CC_PREFIX+'objcopy'
# RANLIB = CC_PREFIX+'ranlib'
# LDFLAGS=' '
# LINKLD = 'link.ld'+ '' # -Map=kernel.map 
# CFLAGS=''

# windows i386 配置实例
# CC_PATH='D:\\app\\gcc\\bin\\'
# CC_PREFIX='i686-elf-'
# CC = CC_PATH+CC_PREFIX+'gcc'
# CC_LIB_PATH ='D:\\app\\gcc\\lib\\gcc\\i686-elf\\7.1.0\\'
# AR =  CC_PATH+CC_PREFIX+'ar'
# LD=  CC_PATH+CC_PREFIX+'ld'
# AS= CC_PATH+CC_PREFIX+'as'
# OBJCOPY =  CC_PATH+CC_PREFIX+'objcopy'
# RANLIB = CC_PATH+CC_PREFIX+'ranlib'
# CFLAGS='-march=i486'
# LDFLAGS=' '
# LINKLD = 'link.ld'+ '' # -Map=kernel.map 

# windows arm 配置实例

# CC_PATH=''
# CC_PREFIX='i686-elf-'
# CC_LIB_PATH ='D:\\app\\gcc\\lib\\gcc\\i686-elf\\7.1.0\\'
# CC = CC_PREFIX+'gcc'
# AR = CC_PREFIX+'ar'
# LD = CC_PREFIX+'ld'
# AS = CC_PREFIX+'as'
# OBJCOPY = CC_PREFIX+'objcopy'
# RANLIB = CC_PREFIX+'ranlib'

# osx xteansa 配置实例

# CC_PATH='~/.espressif/tools/xtensa-esp32-elf/esp-2021r1-8.4.0/xtensa-esp32-elf/bin/'
# CC_PREFIX=CC_PATH+'xtensa-esp32-elf-'
# CC_LIB_PATH=''
# CC = CC_PREFIX+'gcc'
# AR = CC_PREFIX+'ar'
# LD = CC_PREFIX+'ld'
# AS = CC_PREFIX+'as'
# OBJCOPY = CC_PREFIX+'objcopy'
# RANLIB = CC_PREFIX+'ranlib'
# CFLAGS = '-fstack-protector -ffunction-sections '#-DMALLOC_TRACE  -mtext-section-literals 
# LINKFLAGS = ' -nostartfiles -e _start  -g '
# ASFLAGS ='-Iduck/arch/lx6 -I. -Iarch/lx6 '
# SINGLE_KERNEL= True

# default_apps = []

依赖包

❯ yay -Qs scons       
local/scons 4.5.2-1
    Extensible Python-based build utility
❯ yay -Qs arm-none                  
local/arm-none-eabi-binutils 2.41-1
    A set of programs to assemble and manipulate binary and object files for the ARM EABI (bare-metal) target
local/arm-none-eabi-gcc 13.2.0-2
    The GNU Compiler Collection - cross compiler for ARM EABI (bare-metal) target
local/arm-none-eabi-gdb 13.2-1
    The GNU Debugger for the ARM EABI (bare-metal) target
❯ yay -Qs qemu       
local/libvirt 1:9.6.0-1
    API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)
local/nuclei-qemu-bin 2022.12-0
    nuclei-qemu 是 Nuclei Studio IDE 的仿真工具。local/qemu-audio-alsa 8.0.4-2
    QEMU ALSA audio driver
local/qemu-audio-dbus 8.0.4-2
    QEMU D-Bus audio driver
local/qemu-audio-jack 8.0.4-2
    QEMU JACK audio driver
local/qemu-audio-oss 8.0.4-2
    QEMU OSS audio driver
local/qemu-audio-pa 8.0.4-2
    QEMU PulseAudio audio driver
local/qemu-audio-sdl 8.0.4-2
    QEMU SDL audio driver
local/qemu-audio-spice 8.0.4-2
    QEMU spice audio driver
local/qemu-base 8.0.4-2
    A basic QEMU setup for headless environments
local/qemu-block-curl 8.0.4-2
    QEMU curl block driver
local/qemu-block-dmg 8.0.4-2
    QEMU DMG block driver
local/qemu-block-nfs 8.0.4-2
    QEMU NFS block driver
local/qemu-block-ssh 8.0.4-2
    QEMU SSH block driver
local/qemu-chardev-spice 8.0.4-2
    QEMU spice chardev driver
local/qemu-common 8.0.4-2
    A generic and open source machine emulator and virtualizer
local/qemu-desktop 8.0.4-2
    A QEMU setup for desktop environments
local/qemu-hw-display-qxl 8.0.4-2
    QEMU QXL display device
local/qemu-hw-display-virtio-gpu 8.0.4-2
    QEMU virtio-gpu display device
local/qemu-hw-display-virtio-gpu-gl 8.0.4-2
    QEMU virtio-gpu-gl display device
local/qemu-hw-display-virtio-gpu-pci 8.0.4-2
    QEMU virtio-gpu-pci display device
local/qemu-hw-display-virtio-gpu-pci-gl 8.0.4-2
    QEMU virtio-gpu-pci-gl display device
local/qemu-hw-display-virtio-vga 8.0.4-2
    QEMU virtio-vga display device
local/qemu-hw-display-virtio-vga-gl 8.0.4-2
    QEMU virtio-vga-gl display device
local/qemu-hw-s390x-virtio-gpu-ccw 8.0.4-2
    QEMU s390x-virtio-gpu-ccw display device
local/qemu-hw-usb-host 8.0.4-2
    QEMU USB host device
local/qemu-hw-usb-redirect 8.0.4-2
    QEMU usbredir device
local/qemu-hw-usb-smartcard 8.0.4-2
    QEMU USB smartcard device
local/qemu-img 8.0.4-2
    QEMU tooling for manipulating disk images
local/qemu-pr-helper 8.0.4-2
    QEMU persistent reservation utility
local/qemu-system-x86 8.0.4-2
    QEMU system emulator for x86
local/qemu-system-x86-firmware 8.0.4-2
    Firmware for QEMU system emulator for x86
local/qemu-tools 8.0.4-2
    QEMU tools
local/qemu-ui-curses 8.0.4-2
    QEMU curses UI driver
local/qemu-ui-dbus 8.0.4-2
    QEMU D-Bus UI driver
local/qemu-ui-egl-headless 8.0.4-2
    QEMU EGL headless UI driver
local/qemu-ui-gtk 8.0.4-2
    QEMU GTK UI driver
local/qemu-ui-opengl 8.0.4-2
    QEMU OpenGL UI driver
local/qemu-ui-sdl 8.0.4-2
    QEMU SDL UI driver
local/qemu-ui-spice-app 8.0.4-2
    QEMU spice app UI driver
local/qemu-ui-spice-core 8.0.4-2
    QEMU spice core UI driver
local/qemu-vhost-user-gpu 8.0.4-2
    QEMU vhost-user-gpu display device
local/vde2 2.3.3-3
    Virtual Distributed Ethernet for emulators like qemu
❯ yay -Qs gcc 
local/arm-none-eabi-gcc 13.2.0-2
    The GNU Compiler Collection - cross compiler for ARM EABI (bare-metal) target
local/gcc 13.2.1-3
    The GNU Compiler Collection - C and C++ frontends
local/gcc-fortran 13.2.1-3
    Fortran front-end for GCC
local/gcc-libs 13.2.1-3
    Runtime libraries shipped by GCC
local/lib32-gcc-libs 13.2.1-3
    32-bit runtime libraries shipped by GCC
local/nuclei-gcc 2022.12-0
    nuclei-gcc 是 Nuclei Studio IDE 的编译工具。local/nuclei-gcc-bin 2022.12-0
    nuclei-gcc 是 Nuclei Studio IDE 的编译工具。local/riscv64-elf-gcc 12.2.0-1
    The GNU Compiler Collection - cross compiler for RISCV64 (bare-metal) target
❯ yay -Qs glibc
local/glibc 2.38-3
    GNU C Library
local/lib32-glibc 2.38-3
    GNU C Library (32-bit)
local/nss-mdns 0.15.1-1
    glibc plugin providing host name resolution via mDNS

scons issue

when i exceute 编译与运行
#清理
scons -c
#编译
scons -j8
#运行
scons --run=qscons ,error happen...
35Q$@P5S(A~4S5PMQZ6A@`D

blank screen on qemu

when testing on qemu only shows blank screen, below is the complete log=
scons --run=qemu

scons: Reading SConscript files ...
kernel size: 99764
scons: done reading SConscript files.
scons: Building targets ...
sudo losetup /dev/loop10 image/disk.img && sudo mount /dev/loop10 /mnt && sudo cp app/hello/hello app/gui/gui.elf app/microui/microui.elf app/file/file.elf app/etk/etk.elf app/test/test.elf app/bin/ls app/lvgl/lvgl app/track/track.elf app/launcher/launcher /mnt && sudo umount /mnt && sudo losetup -d /dev/loop10
qemu-system-i386 -rtc base=localtime,clock=host -boot a -fda image/duck.img -serial stdio -chardev socket,id=monitor,path=monitor.sock,server,nowait -monitor chardev:monitor -D ./qemu.log -drive id=disk,file=image/disk.img,format=raw,if=none -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0 -soundhw sb16
WARNING: Image format was not specified for 'image/duck.img' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
cpu init cr0=11
tr base 121a54
gdt base 121b38
idt base 9000
mm init
phy dump
base:0 0 lenght:0 9fc00 type:1
base:0 9fc00 lenght:0 400 type:2
base:0 f0000 lenght:0 10000 type:2
base:0 100000 lenght:0 7edf000 type:1
base:0 7fdf000 lenght:0 21000 type:2
base:0 total memory 127m
alloc init
=>block:0 type:1 size:654320 start: 10 end:9fc00
=>block:418800 type:1 size:129787888 start: 418810 end:7fdf000
start 0x0 - 0x200000
paging pae scucess
kernel init
exception init
syscall init
schedule init
module init
memory init
vfs init
kernel init end
module regist
not fond device 9
not fond device 10
not fond device 2
node open is null
node open is null
fat init
partition type:ff offset:0 length:0
fat init end
sb16 init
thread run
kernel run
sys print 1 #
sys open new name: /dev/sda/etk.elf fd:3 fd->id:3 ptr:11943c tid:1
sys open new name: /dev/sda/etk.elf fd:3 fd->id:4 ptr:119450 tid:2
load elf /dev/sda/etk.elf fd:3 tid:2
phnum 11 > MAX_PHDR
entry 200000
scons: done building targets.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.