Add Benchmark Sequential.w

This commit is contained in:
TXuian 2022-12-09 20:03:20 +08:00
parent 0715aedceb
commit b1d0b88b27
13 changed files with 209 additions and 5 deletions

0
APP_Framework/.depend Normal file
View File

View File

View File

@ -0,0 +1,55 @@
framework_init.c.home.tyy.works.xiuos.APP_Framework.Applications.o: \
framework_init.c \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stdio.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/config.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/sys/types.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/compiler.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stdint.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/types.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/inttypes.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/limits.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/limits.h \
/usr/bin/riscv64-unknown-elf-gcc-bank/lib/gcc/riscv64-unknown-elf/10.2.0/include/stdarg.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/time.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/fs/fs.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stdbool.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/semaphore.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/errno.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/semaphore.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/clock.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/sched.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/queue.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/sched.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/strings.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/string.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stddef.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/queue.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/signal.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/irq.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/irq.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/csr.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/chip/irq.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/tls.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/pthread.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/unistd.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/wdog.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/mm/shm.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/mm/gran.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/net/net.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/arch.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/apps/../../../APP_Framework/Framework/transform_layer/nuttx/transform.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/pthread.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/time.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/sys/ioctl.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/fs/ioctl.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/serial/tioctl.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stdlib.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/fcntl.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/ioexpander/gpio.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/signal.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/wqueue.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/termios.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/arch.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/cache.h
# No files specified for dependency generation
# No files specified for dependency generation

View File

@ -0,0 +1,3 @@
# No files specified for dependency generation
# No files specified for dependency generation
# No files specified for dependency generation

View File

@ -75,6 +75,7 @@ void stop_trigger(clock_t *end_time) { *end_time = PrivGetTickTime(); }
void init_benchmark_runset(benchmark_handle *head) {
int i = 0;
while (bmh_list[i].handle != NULL) {
bmh_list[i].time = 0;
add_benchmark_handle(head, bmh_list[i++].handle);
}
global_diff = 0;
@ -127,7 +128,7 @@ void *run_one_example(void *arg) {
}
pthread_attr_t case_attr;
void *run_benchmark(void *args) {
void *run_benchmark_parallel(void *args) {
done_cnt = 0;
volatile int result;
int correct;
@ -137,7 +138,7 @@ void *run_benchmark(void *args) {
.next = NULL,
};
init_benchmark_runset(&head);
printf("[BENCHMARK] Start Benchmark running.\n");
printf("[BENCHMARK] Start Benchmark running parallel.\n");
case_attr.schedparam.sched_priority = 30;
case_attr.stacksize = 16384;
@ -161,10 +162,49 @@ void *run_benchmark(void *args) {
return NULL;
}
static int embenchmark(void) {
run_benchmark(NULL);
void *run_benchmark_sequential(void *args) {
volatile int result;
int correct;
benchmark_handle head = {
.handle.magic_number = MAGIC_NUMBER,
.next = NULL,
};
init_benchmark_runset(&head);
printf("[BENCHMARK] Start Benchmark running sequential.\n");
benchmark_handle *cur_handle = head.next;
while (NULL != cur_handle) {
assert(cur_handle->handle.magic_number != MAGIC_NUMBER);
clock_t start_time = 0, end_time = 0;
cur_handle->handle.benchmark_func->initialise_benchmark();
cur_handle->handle.benchmark_func->warm_caches(WARMUP_HEAT);
start_trigger(&start_time);
volatile int result = cur_handle->handle.benchmark_func->benchmark();
stop_trigger(&end_time);
int correct = cur_handle->handle.benchmark_func->verify_benchmark(result);
if (!correct) {
printf("[EmBench] Wrong result!.\n");
}
organize_result(cur_handle, start_time, end_time);
cur_handle = cur_handle->next;
}
print_result();
printf("[BENCHMARK] Global Time Diff: %f\n", global_diff);
}
static int embenchmark_parallel(void) {
run_benchmark_parallel(NULL);
return 0;
}
PRIV_SHELL_CMD_FUNCTION(embenchmark, benchmark, PRIV_SHELL_CMD_MAIN_ATTR);
static int embenchmark_sequential(void) {
run_benchmark_sequential(NULL);
return 0;
}
PRIV_SHELL_CMD_FUNCTION(embenchmark_parallel, run benchmark in parallel,
PRIV_SHELL_CMD_MAIN_ATTR);
PRIV_SHELL_CMD_FUNCTION(embenchmark_sequential, run benchmark in sequential,
PRIV_SHELL_CMD_MAIN_ATTR);
#endif

View File

@ -0,0 +1,30 @@
double_list.c.home.tyy.works.xiuos.APP_Framework.Applications.general_functions.list.o: \
double_list.c list.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/errno.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/compiler.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/config.h \
/usr/bin/riscv64-unknown-elf-gcc-bank/lib/gcc/riscv64-unknown-elf/10.2.0/include/stdarg.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/fcntl.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/sys/types.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stdint.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/types.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/inttypes.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/limits.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/limits.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stddef.h
single_list.c.home.tyy.works.xiuos.APP_Framework.Applications.general_functions.list.o: \
single_list.c list.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/errno.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/compiler.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/config.h \
/usr/bin/riscv64-unknown-elf-gcc-bank/lib/gcc/riscv64-unknown-elf/10.2.0/include/stdarg.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/fcntl.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/sys/types.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stdint.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/types.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/inttypes.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/limits.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/limits.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stddef.h
# No files specified for dependency generation
# No files specified for dependency generation

View File

@ -0,0 +1,54 @@
transform.c.home.tyy.works.xiuos.APP_Framework.Framework.transform_layer.nuttx.o: \
transform.c transform.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/config.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/pthread.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/pthread.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/compiler.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/sys/types.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stdint.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/types.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/inttypes.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/limits.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/limits.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stdbool.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/unistd.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/signal.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/time.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/semaphore.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/sched.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/strings.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/string.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stddef.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/queue.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/semaphore.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/errno.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/clock.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/time.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/sys/ioctl.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/fs/ioctl.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/serial/tioctl.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stdlib.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/stdio.h \
/usr/bin/riscv64-unknown-elf-gcc-bank/lib/gcc/riscv64-unknown-elf/10.2.0/include/stdarg.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/fs/fs.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/sched.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/queue.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/irq.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/irq.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/csr.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/chip/irq.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/tls.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/wdog.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/mm/shm.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/mm/gran.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/net/net.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/arch/arch.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/fcntl.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/ioexpander/gpio.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/signal.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/wqueue.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/termios.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/arch.h \
/home/tyy/works/xiuos/Ubiquitous/Nuttx_Fusion_XiUOS/nuttx/include/nuttx/cache.h
# No files specified for dependency generation
# No files specified for dependency generation

3
APP_Framework/Make.dep Normal file
View File

@ -0,0 +1,3 @@
# No files specified for dependency generation
# No files specified for dependency generation
# No files specified for dependency generation

View File

@ -456,6 +456,9 @@ CONFIG_OV2640_Y_IMAGE_WINDOWS_SIZE=400
#
# the value must be greater than OV2640_Y_RESOLUTION_IMAGE_OUTSIZE
#
# CONFIG_DRV_USING_HS300X is not set
# CONFIG_DRV_USING_SX1278 is not set
# CONFIG_PKG_USING_WIZNET is not set
#
# APP_Framework
@ -487,6 +490,7 @@ CONFIG_USING_K210_YOLOV2_DETECT=y
# Security
#
# CONFIG_CRYPTO is not set
# CONFIG_MBEDTLS is not set
#
# Applications
@ -540,7 +544,12 @@ CONFIG_APPLICATION_SENSOR=y
# CONFIG_APPLICATION_SENSOR_VOICE is not set
# CONFIG_APPLICATION_SENSOR_TEMPERATURE is not set
# CONFIG_APPLICATION_SENSOR_HUMIDITY is not set
# CONFIG_APPLICATION_SENSOR_WINDDIRECTION is not set
# CONFIG_APPLICATION_SENSOR_WINDSPEED is not set
# CONFIG_APPLICATION_SENSOR_ALTITUDE is not set
# CONFIG_USING_EMBEDDED_DATABASE_APP is not set
# CONFIG_APP_USING_WEBNET is not set
CONFIG_APP_BENCHMARK=y
#
# lib
@ -550,5 +559,10 @@ CONFIG_APP_SELECT_NEWLIB=y
CONFIG_LIB_USING_CJSON=y
# CONFIG_LIB_USING_QUEUE is not set
# CONFIG_LIB_LV is not set
#
# LVGL configuration
#
# CONFIG_LV_CONF_MINIMAL is not set
# CONFIG_USING_EMBEDDED_DATABASE is not set
CONFIG___STACKSIZE__=4096

View File

@ -313,6 +313,7 @@
/* the value must be greater than OV2640_Y_RESOLUTION_IMAGE_OUTSIZE */
/* APP_Framework */
/* Framework */
@ -353,11 +354,15 @@
/* sensor app */
#define APPLICATION_SENSOR
#define APP_BENCHMARK
/* lib */
#define APP_SELECT_NEWLIB
#define LIB_USING_CJSON
/* LVGL configuration */
#define __STACKSIZE__ 4096
#endif