Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

32 changes: 32 additions & 0 deletions projects/maixpy_yahboom_devkit/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
cmake_minimum_required(VERSION 3.9)


# Get SDK path
if(NOT SDK_PATH)
get_filename_component(SDK_PATH ../../ ABSOLUTE)
if(EXISTS $ENV{MY_SDK_PATH})
set(SDK_PATH $ENV{MY_SDK_PATH})
endif()
endif()

# Check SDK Path
if(NOT EXISTS ${SDK_PATH})
message(FATAL_ERROR "SDK path Error, Please set SDK_PATH or MY_SDK_PATH variable")
endif()

# Get Toolchain path
if(NOT CONFIG_TOOLCHAIN_PATH)
if(EXISTS $ENV{MY_TOOLCHAIN_PATH})
set(CONFIG_TOOLCHAIN_PATH $ENV{MY_TOOLCHAIN_PATH})
endif()
endif()

# Call compile
include(${SDK_PATH}/tools/cmake/compile.cmake)


# Project Name
project(maixpy)



55 changes: 55 additions & 0 deletions projects/maixpy_yahboom_devkit/builtin_py/board.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
try:
import ujson as json
except ImportError:
import json

# todo: serial console not fully functioning for debugging and/or repl
# yahboom_devkit pretends to be "yahboom" so that krux code can enable common features
config = json.loads("""
{
"type": "yahboom",
"lcd": {
"dcx": 38,
"ss": 36,
"rst": 37,
"clk": 39,
"height": 240,
"width": 320,
"invert": 1,
"dir": 96,
"lcd_type": 0
},
"sdcard": {
"sclk": 27,
"mosi": 28,
"miso": 26,
"cs": 29
},
"board_info": {
"BOOT_KEY": 16,
"CONNEXT_A": 4,
"CONNEXT_B": 5,
"I2C_SDA": 10,
"I2C_SCL": 9,
"SPI_SCLK": 27,
"SPI_MOSI": 28,
"SPI_MISO": 26,
"SPI_CS": 29
},
"krux": {
"pins": {
"BUTTON_A": 2,
"BUTTON_B": 3,
"BUTTON_C": 1,
"TOUCH_IRQ": 12,
"I2C_SDA": 10,
"I2C_SCL": 9
},
"display": {
"touch": true,
"font": [8, 16],
"font_wide": [16, 16]
}
}
}
""")
36 changes: 36 additions & 0 deletions projects/maixpy_yahboom_devkit/builtin_py/fpioa_manager.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from Maix import FPIOA

class fm:
fpioa = FPIOA()

def help():
__class__.fpioa.help()

def get_pin_by_function(function):
return __class__.fpioa.get_Pin_num(function)

def register(pin, function, force=True):
pin_used = __class__.get_pin_by_function(function)
if pin_used == pin:
return
if None != pin_used:
info = "[Warning] function is used by %s(pin:%d)" % (
fm.str_function(function), pin_used)
if force == False:
raise Exception(info)
else:
print(info)
__class__.fpioa.set_function(pin, function)

def unregister(pin):
__class__.fpioa.set_function(pin, fm.fpioa.RESV0)

def str_function(function):
if fm.fpioa.GPIOHS0 <= function and function <= fm.fpioa.GPIO7:
if fm.fpioa.GPIO0 <= function:
return 'fm.fpioa.GPIO%d' % (function - fm.fpioa.GPIO0)
return 'fm.fpioa.GPIOHS%d' % (function - fm.fpioa.GPIOHS0)
return 'unknown'

def get_gpio_used():
return [(__class__.str_function(f), __class__.get_pin_by_function(f)) for f in range(fm.fpioa.GPIOHS0, fm.fpioa.GPIO7 + 1)]
114 changes: 114 additions & 0 deletions projects/maixpy_yahboom_devkit/compile/compile_flags.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@

########## set C flags #########
set(CMAKE_C_FLAGS -mcmodel=medany
-mabi=lp64f
-march=rv64imafc
-fno-common
-ffunction-sections
-fdata-sections
-fstrict-volatile-bitfields
-fno-zero-initialized-in-bss
-ffast-math
-fno-math-errno
-fsingle-precision-constant
-ffloat-store
-std=gnu11
-Os
-Wall
#-Werror=all
-Wno-error=unused-function
-Wno-error=unused-but-set-variable
-Wno-error=unused-variable
-Wno-error=deprecated-declarations
-Wno-error=maybe-uninitialized
-Wextra
#-Werror=frame-larger-than=32768
#-Wno-unused-parameter
#-Wno-unused-function
#-Wno-implicit-fallthrough
#-Wno-sign-compare
-Wno-error=missing-braces
#-Wno-old-style-declaration
-Wno-error=pointer-sign
#-Wno-pointer-to-int-cast
#-Wno-strict-aliasing
#-Wno-override-init
-Wno-error=format=
-Wno-error=format-truncation=
-Wno-error=restrict
-Wno-error=sequence-point
-Wno-int-to-pointer-cast
)
################################


###### set CXX(cpp) flags ######
set(CMAKE_CXX_FLAGS -mcmodel=medany
-mabi=lp64f
-march=rv64imafc
-fno-common
-ffunction-sections
-fdata-sections
-fstrict-volatile-bitfields
-fno-zero-initialized-in-bss
-Os
-std=gnu++17
-Wall
-Wno-error=unused-function
-Wno-error=unused-but-set-variable
-Wno-error=unused-variable
-Wno-error=deprecated-declarations
-Wno-error=maybe-uninitialized
-Wextra
#-Werror=frame-larger-than=32768
#-Wno-unused-parameter
#-Wno-unused-function
#-Wno-implicit-fallthrough
#-Wno-sign-compare
-Wno-error=missing-braces
-Wno-error=pointer-sign
#-Wno-strict-aliasing
-Wno-error=format=
-Wno-error=format-truncation=
-Wno-error=restrict
-Wno-error=sequence-point
#-Wno-int-to-pointer-cast
)
################################

set(LINK_FLAGS ${LINK_FLAGS}
-static
-Wl,-static
-nostartfiles
-Wl,--gc-sections
-Wl,-EL
-T ${PROJECT_SOURCE_DIR}/compile/kendryte.ld
-Wl,--start-group
-Wl,--whole-archive
kendryte_sdk/libkendryte_sdk.a main/libmain.a
-Wl,--no-whole-archive
-Wl,--end-group
)
set(CMAKE_C_LINK_FLAGS ${CMAKE_C_LINK_FLAGS}
${LINK_FLAGS}
)
set(CMAKE_CXX_LINK_FLAGS ${CMAKE_C_LINK_FLAGS}
#${LINK_FLAGS}
)
# set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS}
# ${LINK_FLAGS}
# )
# set(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS}
# ${LINK_FLAGS}
# )
# set(CMAKE_MODULE_LINKER_FLAGS ${CMAKE_MODULE_LINKER_FLAGS}
# ${LINK_FLAGS}
# )


# Convert list to string
string(REPLACE ";" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
string(REPLACE ";" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REPLACE ";" " " LINK_FLAGS "${LINK_FLAGS}")
string(REPLACE ";" " " CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS}")
string(REPLACE ";" " " CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS}")
Loading
Loading