Skip to content

Commit a2352bf

Browse files
committed
ci: update bl & hpm demo
Signed-off-by: sakumisu <[email protected]>
1 parent 9a1ead9 commit a2352bf

25 files changed

+5178
-490
lines changed

.github/workflows/build_tests.yml

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,33 @@ jobs:
3737
export HPM_SDK_BASE=~/hpm_sdk
3838
export GNURISCV_TOOLCHAIN_PATH=~/rv32imac_zicsr_zifencei_multilib_b_ext-linux
3939
export HPM_SDK_TOOLCHAIN_VARIANT=
40-
cmake -S . -B build -GNinja -DBOARD=hpm6750evk2 -DCMAKE_BUILD_TYPE=flash_sdram_xip -DEXTRA_C_FLAGS="-Werror";cmake --build build
40+
cmake -S . -B build -GNinja -DBOARD=hpm6800evk -DHPM_BUILD_TYPE=flash_sdram_xip -DCMAKE_BUILD_TYPE=debug -DEXTRA_C_FLAGS="-Werror";cmake --build build
41+
42+
build_bouffalolab:
43+
runs-on: ubuntu-latest
44+
steps:
45+
- name: Checkout repository
46+
uses: actions/checkout@v3
47+
48+
- name: Install dependencies
49+
run: sudo apt-get update && sudo apt-get install -y cmake make
50+
51+
- name: Download bouffalo_sdk
52+
run: |
53+
cd ~
54+
git clone https://github.com/bouffalolab/bouffalo_sdk.git
55+
56+
- name: Download RISC-V toolchain
57+
run: |
58+
cd ~
59+
git clone https://github.com/bouffalolab/toolchain_gcc_t-head_linux.git
60+
61+
- name: Build bouffalo demo
62+
run: |
63+
cd tests/bouffalolab
64+
export BL_SDK_BASE=~/bouffalo_sdk
65+
export PATH=~/toolchain_gcc_t-head_linux/bin:$PATH
66+
make CHIP=bl616 BOARD=bl616dk -j12
4167
4268
build_espressif:
4369
strategy:

tests/bouffalolab/CMakeLists.txt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
cmake_minimum_required(VERSION 3.15)
2+
3+
include(proj.conf)
4+
5+
find_package(bouffalo_sdk REQUIRED HINTS $ENV{BL_SDK_BASE})
6+
7+
sdk_add_compile_definitions(-DCONFIG_USBHOST_PLATFORM_CDC_ECM)
8+
sdk_add_compile_definitions(-DCONFIG_USBHOST_PLATFORM_CDC_NCM)
9+
sdk_add_compile_definitions(-DCONFIG_USBHOST_PLATFORM_CDC_RNDIS)
10+
sdk_add_compile_definitions(-DCONFIG_USBHOST_PLATFORM_ASIX)
11+
sdk_add_compile_definitions(-DCONFIG_USBHOST_PLATFORM_RTL8152)
12+
sdk_add_include_directories(inc)
13+
14+
target_sources(app PRIVATE ../../demo/usb_host.c)
15+
16+
set(CONFIG_CHERRYMP 1)
17+
set(CONFIG_CHERRYUSB 1)
18+
set(CONFIG_CHERRYUSB_DEVICE 1)
19+
set(CONFIG_CHERRYUSB_HOST 1)
20+
21+
set(CONFIG_CHERRYUSB_DEVICE_CDC_RNDIS 1)
22+
set(CONFIG_CHERRYUSB_DEVICE_CDC_ECM 1)
23+
24+
# add_subdirectory(src/cherryusb_hostuvcuac)
25+
add_subdirectory(../.. cherryusb)
26+
27+
# sdk_add_link_options(-uusbd_cdc_acm_init_intf)
28+
# sdk_add_link_options(-uusbd_hid_init_intf)
29+
# sdk_add_link_options(-uusbd_msc_init_intf)
30+
# sdk_add_link_options(-uusbd_video_init_intf)
31+
# sdk_add_link_options(-uusbd_audio_init_intf)
32+
# sdk_add_link_options(-uusbd_cdc_ecm_init_intf)
33+
# sdk_add_link_options(-uusbd_rndis_init_intf)
34+
# sdk_add_link_options(-uusbd_initialize)
35+
# sdk_add_link_options(-uusbd_desc_register)
36+
# sdk_add_link_options(-uusbd_add_interface)
37+
# sdk_add_link_options(-uusbd_add_endpoint)
38+
# sdk_add_link_options(-uusbd_rndis_start_write)
39+
# sdk_add_link_options(-uusbd_rndis_start_read)
40+
# sdk_add_link_options(-uusbd_cdc_ecm_start_write)
41+
# sdk_add_link_options(-uusbd_cdc_ecm_start_read)
42+
# sdk_add_link_options(-uusbd_video_stream_start_write)
43+
# sdk_add_link_options(-uusbd_video_stream_split_transfer)
44+
45+
sdk_set_main_file(src/main.c)
46+
project(cherryusb)

tests/bouffalolab/Makefile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
SDK_DEMO_PATH ?= .
2+
BL_SDK_BASE ?= /home/sakumisu/repo/bouffalolab/bouffalo_sdk_github
3+
4+
export BL_SDK_BASE
5+
6+
CHIP ?= bl616
7+
BOARD ?= bl616dk
8+
CROSS_COMPILE = riscv64-unknown-elf-
9+
10+
# add custom cmake definition
11+
#cmake_definition+=-Dxxx=sss
12+
13+
include $(BL_SDK_BASE)/project.build
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[cfg]
2+
# 0: no erase, 1:programmed section erase, 2: chip erase
3+
erase = 1
4+
# skip mode set first para is skip addr, second para is skip len, multi-segment region with ; separated
5+
skip_mode = 0x0, 0x0
6+
# 0: not use isp mode, #1: isp mode
7+
boot2_isp_mode = 0
8+
pre_program =
9+
pre_program_args =
10+
11+
[FW]
12+
filedir = ./build/build_out/cherryusb*_$(CHIPNAME).bin
13+
address = 0x000000
14+
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
/*
2+
* FreeRTOS Kernel V10.2.1
3+
* Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4+
*
5+
* Permission is hereby granted, free of charge, to any person obtaining a copy of
6+
* this software and associated documentation files (the "Software"), to deal in
7+
* the Software without restriction, including without limitation the rights to
8+
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9+
* the Software, and to permit persons to whom the Software is furnished to do so,
10+
* subject to the following conditions:
11+
*
12+
* The above copyright notice and this permission notice shall be included in all
13+
* copies or substantial portions of the Software.
14+
*
15+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17+
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18+
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19+
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20+
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21+
*
22+
* http://www.FreeRTOS.org
23+
* http://aws.amazon.com/freertos
24+
*
25+
* 1 tab == 4 spaces!
26+
*/
27+
#ifndef FREERTOS_CONFIG_H
28+
#define FREERTOS_CONFIG_H
29+
/*-----------------------------------------------------------
30+
* Application specific definitions.
31+
*
32+
* These definitions should be adjusted for your particular hardware and
33+
* application requirements.
34+
*
35+
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
36+
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
37+
*
38+
* See http://www.freertos.org/a00110.html.
39+
*----------------------------------------------------------*/
40+
#if defined(BL602) || defined(BL702) || defined(BL702L)
41+
#define configMTIME_BASE_ADDRESS (0x02000000UL + 0xBFF8UL)
42+
#define configMTIMECMP_BASE_ADDRESS (0x02000000UL + 0x4000UL)
43+
#else
44+
#if __riscv_xlen == 64
45+
#define configMTIME_BASE_ADDRESS (0)
46+
#define configMTIMECMP_BASE_ADDRESS ((0xE4000000UL) + 0x4000UL)
47+
#else
48+
#define configMTIME_BASE_ADDRESS ((0xE0000000UL) + 0xBFF8UL)
49+
#define configMTIMECMP_BASE_ADDRESS ((0xE0000000UL) + 0x4000UL)
50+
#endif
51+
#endif
52+
53+
#define configSUPPORT_STATIC_ALLOCATION 1
54+
#define configUSE_PREEMPTION 1
55+
#define configUSE_IDLE_HOOK 0
56+
#define configUSE_TICK_HOOK 0
57+
#define configCPU_CLOCK_HZ ((uint32_t)(1 * 1000 * 1000))
58+
#define configTICK_RATE_HZ ((TickType_t)1000)
59+
#define configMAX_PRIORITIES (32)
60+
#define configMINIMAL_STACK_SIZE ((unsigned short)128) /* Only needs to be this high as some demo tasks also use this constant. In production only the idle task would use this. */
61+
#define configTOTAL_HEAP_SIZE ((size_t)24 * 1024)
62+
#define configMAX_TASK_NAME_LEN (16)
63+
#define configUSE_TRACE_FACILITY 1
64+
#define configUSE_STATS_FORMATTING_FUNCTIONS 1
65+
#define configUSE_16_BIT_TICKS 0
66+
#define configIDLE_SHOULD_YIELD 0
67+
#define configUSE_MUTEXES 1
68+
#define configQUEUE_REGISTRY_SIZE 8
69+
#define configCHECK_FOR_STACK_OVERFLOW 2
70+
#define configUSE_RECURSIVE_MUTEXES 1
71+
#define configUSE_MALLOC_FAILED_HOOK 1
72+
#define configUSE_APPLICATION_TASK_TAG 1
73+
#define configUSE_COUNTING_SEMAPHORES 1
74+
#define configGENERATE_RUN_TIME_STATS 0
75+
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
76+
#define configUSE_TICKLESS_IDLE 0
77+
#define configUSE_POSIX_ERRNO 1
78+
79+
#define configTHREAD_LOCAL_STORAGE_DELETE_CALLBACKS 0
80+
81+
/* Co-routine definitions. */
82+
#define configUSE_CO_ROUTINES 0
83+
#define configMAX_CO_ROUTINE_PRIORITIES (2)
84+
85+
/* Software timer definitions. */
86+
#define configUSE_TIMERS 1
87+
#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 1)
88+
#define configTIMER_QUEUE_LENGTH 4
89+
#define configTIMER_TASK_STACK_DEPTH (512)
90+
/* Task priorities. Allow these to be overridden. */
91+
#ifndef uartPRIMARY_PRIORITY
92+
#define uartPRIMARY_PRIORITY (configMAX_PRIORITIES - 3)
93+
#endif
94+
/* Set the following definitions to 1 to include the API function, or zero
95+
to exclude the API function. */
96+
#define INCLUDE_vTaskPrioritySet 1
97+
#define INCLUDE_uxTaskPriorityGet 1
98+
#define INCLUDE_vTaskDelete 1
99+
#define INCLUDE_vTaskCleanUpResources 1
100+
#define INCLUDE_vTaskSuspend 1
101+
#define INCLUDE_vTaskDelayUntil 1
102+
#define INCLUDE_vTaskDelay 1
103+
#define INCLUDE_eTaskGetState 1
104+
#define INCLUDE_xTimerPendFunctionCall 1
105+
#define INCLUDE_xTaskAbortDelay 1
106+
#define INCLUDE_xTaskGetHandle 1
107+
#define INCLUDE_xSemaphoreGetMutexHolder 1
108+
/* Normal assert() semantics without relying on the provision of an assert.h
109+
header file. */
110+
void vApplicationMallocFailedHook(void);
111+
void vAssertCalled(void);
112+
113+
#include <stdio.h>
114+
115+
#define configASSERT(x) \
116+
if ((x) == 0) { \
117+
printf("file [%s]\r\n", __FILE__); \
118+
printf("func [%s]\r\n", __FUNCTION__); \
119+
printf("line [%d]\r\n", __LINE__); \
120+
printf("%s\r\n", (const char *)(#x)); \
121+
vAssertCalled(); \
122+
}
123+
#if (configUSE_TICKLESS_IDLE != 0)
124+
void vApplicationSleep(uint32_t xExpectedIdleTime);
125+
#define portSUPPRESS_TICKS_AND_SLEEP(xExpectedIdleTime) vApplicationSleep(xExpectedIdleTime)
126+
#endif
127+
// #define portUSING_MPU_WRAPPERS
128+
#endif /* FREERTOS_CONFIG_H */

0 commit comments

Comments
 (0)