目录
7.改为flash启动代码时,lwip发送不够快,导致阻塞,改为如下
编辑8.移植烧录,实现在flash上跑代码,并且实现局域网查看监控
1.前提条件
下载了安信可的CAM-U开源例程,下载好AIPI-CAM项目源码
复制博流SDK的helloworld例程,作为初始的工程
2.所需添加的宏定义,编译选项等
2.1cmakelist.txt文件修改,添加所需的文件及宏定义,基本上就是添加关键的库文件,启动USB宏,取消PSRAM_CPOY_CODE
cmake_minimum_required(VERSION 3.15)
include(proj.conf)
find_package(bouffalo_sdk REQUIRED HINTS $ENV{BL_SDK_BASE})
sdk_add_include_directories(cjson)
sdk_add_include_directories(rtos/include .)
sdk_add_include_directories(video)
# sdk_add_include_directories(audio)
sdk_add_include_directories(web)
# User
#sdk_add_compile_definitions(-DCONFIG_CLI_CMD_ENABLE)
#sdk_add_compile_definitions(-DBL616_DHCP_DEBUG)
# sdk_add_compile_definitions(-DSIMU_DATA_TEST)
#sdk_add_compile_definitions(-DCONFIG_PSRAM_COPY_CODE)
sdk_add_compile_definitions(-DCONFIG_USB_EHCI_ISO)
target_sources(app PRIVATE
Bsp_Camera.c
Bsp_Gpio.c
Bsp_Flash.c
User_Tcp_Task.c
User_Mqtt_Task.c
cjson/cJSON.c
Bsp_Global_Data.c
Bsp_Uart.c
rtos/bl_cam_frame.c
video/jpeg_head.c video/mjpeg.c video/dbi_disp.c video/pbuff_dvp.c
# audio/auadc.c audio/audac.c
web/mlwip_https.c
)
if(CONFIG_CHERRYUSB)
# add_subdirectory(${BL_SDK_BASE}/components/usb/usbh_uvc_uac usbh_uvc_uac)
# sdk_add_static_library(libusbh_uvc_uac.a libhibooster.a)
sdk_add_static_library(libusbh_uvc_uac.a)
target_sources(app PRIVATE
video/usbh_uvc_callback.c
# audio/usbh_uac_callback.c
)
endif()
sdk_set_main_file(main.c)
project(Demo)
2.2proj.conf文件修改,添加需要的宏,添加usb组件需要的宏
# Components
set(CONFIG_BFLOG 0)
set(CONFIG_FREERTOS 1)
set(CONFIG_POSIX 1)
set(CONFIG_TLSF 1)
set(CONFIG_SHELL 0)
set(CONFIG_LWIP 1)
set(CONFIG_WIFI6 1)
set(CONFIG_RF 1)
set(CONFIG_MBEDTLS 1)
set(CONFIG_PSRAM 1)
set(CONFIG_DHCPD 1)
set(CONFIG_PING 1)
# set(CONFIG_HIBOOSTER 1)
set(CONFIG_MQTT 1)
# 默认DVP 摄像头,如果使用USB 摄像头,需要使用这个指令
set(CONFIG_CHERRYUSB 1)
set(CONFIG_CHERRYUSB_HOST 1)
set(CONFIG_CHERRYUSB_HOST_DEMO 1)
set(CONFIG_CHERRYUSB_DEVICE_VIDEO 1)
set(CONFIG_BSP_LCD 1)
set(CONFIG_BSP_IMAGE_SENSOR 1)
set(CONFIG_FATFS 1)
set(CONFIG_BSP_SDH_SDCARD 1)
set(CONFIG_FATFS_SDH_SDCARD 1)
# Config
## mbedtls
set(CONFIG_MBEDTLS_AES_USE_HW 0)
set(CONFIG_MBEDTLS_BIGNUM_USE_HW 0)
set(CONFIG_MBEDTLS_ECC_USE_HW 0)
set(CONFIG_MBEDTLS_SHA1_USE_HW 0)
set(CONFIG_MBEDTLS_SHA256_USE_HW 0)
set(CONFIG_MBEDTLS_SHA512_USE_HW 0)
# wifi
set(CONFIG_VIF_MAX 2)
set(CONFIG_STA_MAX 4)
set(CONFIG_MAC_TXQ_DEPTH 32)
set(CONFIG_MAC_RXQ_DEPTH 12)
2.3内存不足,修改板级文件的内存空间分配,创建bl616unit
复制bl616dk文件夹,黏贴到board,并改名为其他名字
修改bl616_flash.ld文件,增大nocache_ram_memory大小如图,在BL618参考手册可以内存地址映射,可以发现一些端倪
3.主要流程图(重点)
4.AP驱动
4.USB主机初始化,mjpeg初始化
初始化usb_host,博流SDK使用的是cherryusb库,初始化mjpeg