Doorbell_ab_4M
1. 简介
本工程是USB摄像头门锁的一个demo,支持端(BK7258设备)到端(手机APP端)的演示。默认支持尚云进行网络传输。
1.1 规格
- 硬件配置:
核心板,BK7258_QFN88_9X9_V3.2
显示转接板,BK7258_LCD_Interface_V3.0
喇叭小板,BK_Module_Speaker_V1.1
PSRAM 4M
- 支持,UVC
参考外设,最大支持**864 * 480** 分辨率的UVC
支持,UAC
支持,TCP局域网图传
支持,UDP局域网图传
支持,尚云,P2P图传
- 支持,LCD RGB/MCU I8080显示
参考外设,ST7701SN,480 * 854 RGB LCD
RGB565/RGB888
- 支持,硬件/软件旋转
0°,90°,180°,270°
支持,板载喇叭
- 支持,MJPEG硬件解码
YUV422
- 支持,MJPEG软件解码
YUV420
支持,H264硬件解码
- 支持,OSD显示
ARGB888[PNG]
自定义字体
1.2 路径
<bk_avdk源代码路径>/projects/media/doorbell_ab_4M
2. 框架图
请参考 框架图
3. 配置
请参考 配置
3.1 区别
doorbell_ab_4M与doorbell_8M的区别在于,前一个不支持DVP摄像头,还不支持板载mic。psram大小和型号也不一致。
![]()
Figure 1. 4M & 8M的主要分区差异图
从8M的PSRAM大小修改为4M_ab的PSRAM大小,需要针对config文件进行修改,文件路径为:
doorbell_ab_4M/config/bk7258/config
doorbell_ab_4M/config/bk7258_cp1/config
doorbell_ab_4M/config/bk7258_cp2/config
以下是 doorbell_8M 与doorbell_ab_4M 主要的 config 参数区别(关键config但没有差异的,也会列出):
project
doorbell_8M
doorbell_ab_4M
CONFIG_PSRAM_MEM_SLAB_USER_SIZE
102400
0
CONFIG_PSRAM_MEM_SLAB_AUDIO_SIZE
102400
51200
CONFIG_PSRAM_MEM_SLAB_ENCODE_SIZE
1433600
946176
CONFIG_PSRAM_MEM_SLAB_DISPLAY_SIZE
5701632
2490368
CONFIG_MEDIA_PSRAM_SIZE_4M
N
Y
CONFIG_BUCK_ANALOG_DISABLE
N
Y
CONFIG_PSRAM_W955D8MKY_5J
N
Y
CONFIG_PSRAM_APS6408L_O
N
N
CONFIG_CPU0_SPE_RAM_SIZE
0X56000
0X5E000
CONFIG_CPU1_APP_RAM_SIZE
0X3F000
0X38000
CONFIG_CPU2_APP_RAM_SIZE
0XB000
0XA000
CONFIG_PSRAM_HEAP_BASE
0x60700000
0x60354000
CONFIG_PSRAM_HEAP_SIZE
0x80000
0x7D000
CONFIG_PSRAM_HEAP_CPU0_BASE_ADDER
0x60700000
0x60354000
CONFIG_H264_P_FRAME_CNT
5
3
CONFIG_ALI_MQTT
N
N
流程如下图所示:
![]()
Figure 2. doorbell_ab_4M解码流程
![]()
Figure 3. doorbell_8M解码流程
流程上主要区别如下表:
project
解码流程
doorbell_ab_4M
先尝试获取YUV图像,申请成功后才继续进行解码, lcd显示完直接触发下一次获取图像流程
doorbell_8M
直接解码,获取YUV图像失败后直接将JPEG释放,等待下一帧JPEG
4. 演示说明
请访问 APP使用文档 查看。
演示结果:运行时会启动UVC,LCD和AUDIO,LCD显示UVC输出JPEG(864X480)图像经过解码和旋转90°后显示到LCD(480X854)上, 解码后的YUV经过H264编码后,经CS2云到手机上显示(864X480)。
提示
如果您没有云账号权限,可以使用debug模式,设置局域网TCP/UDP图传方式。
5. 代码讲解
请参考 代码讲解
6. 移植说明
对于media模块而言,4M(不论是否包括ab分区)和8M最大的区别在于PSRAM大小配置缩小,因此内部缓冲图像数量减少,如下表所示;
project
YUV图像(张) | JPEG图像(张) | H264图像(张)
doorbell_ab_4M
3
4
4
doorbell_8M
5
4
6
将8M FLASH + 8M PSRAM 修改为4M FLASH + 4M PSRAM ab 工程按照以下步骤进行:
步骤1:
将平台代码合入;
根据patch将修改同步,patch的提交标题为”adapter for new 4+4 psram of W955D8MKY”,
共四笔提交,包括doorbell_ab_4M的工程代码,代码目录核涉及文件如下表所示:
代码目录
涉及文件
middleware
driver/pwr_clk/Kconfig
soc/bk7258/hal/sys_pm_hal.c
soc/common/hal/include/psram_hal.h
soc/common/hal/psram_hal.c
tools/build_tools
part_table_tools/otherScript/special_project_deal.py
bk_idk/components/part_table
CMakeLists.txt
part_table.mk
projects
media/doorbell_ab_4M/CMakeLists.txt
media/doorbell_ab_4M/config/bk7258_cp1/config
media/doorbell_ab_4M/config/bk7258_cp2/config
media/doorbell_ab_4M/config/bk7258/ab_position_independent.csv
media/doorbell_ab_4M/config/bk7258/bk7258_partitions.csv
media/doorbell_ab_4M/config/bk7258/config
media/doorbell_ab_4M/config/bk7258/configuration.json
media/doorbell_ab_4M/config/bk7258/configurationab.json
media/doorbell_ab_4M/config/bk7258/partitions.csv
media/doorbell_ab_4M/config/ota_rbl.config
media/doorbell_ab_4M/main/app_main.c
media/doorbell_ab_4M/main/CMakeLists.txt
media/doorbell_ab_4M/main/Kconfig.projbuild
media/doorbell_ab_4M/main/vendor_flash.c
media/doorbell_ab_4M/main/vendor_flash_partition.h
media/doorbell_ab_4M/pj_config.mk
media/doorbell_ab_4M/README.md
主要修改点如下表所示:
涉及文件
主要修改点
driver/pwr_clk/Kconfig
增加BUCK_ANALOG_DISABLE 关闭模拟域BUCK的宏控
soc/bk7258/hal/sys_pm_hal.c
配置关闭模拟域BUCK的实际代码
soc/common/hal/include/psram_hal.h
增加4M PSRAM的新配置MODE以及ID信息
soc/common/hal/psram_hal.c
增加4M PSRAM的初始化流程
part_table_tools/otherScript/special_project_deal.py
增加针对doorbell_ab_4M分区工程的编译处理
CMakeLists.txt
part_table.mk
增加doorbell_ab_4M工程
增加doorbell_ab_4M编译信息
media/doorbell_ab_4M/config/bk7258_cp1/config
tmedia/doorbell_ab_4M/config/bk7258_cp2/config
media/doorbell_ab_4M/config/bk7258/config
增加doorbell_ab_4M工程CPU1使用的宏控
增加doorbell_ab_4M工程CPU2使用的宏控
增加doorbell_ab_4M工程CPU0使用的宏控
media/doorbell_ab_4M/config/bk7258/bk7258_partitions.csv
修改FLASH空间分配为4M