完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在 CX3 的框架下降方面需要一些帮助。 我有几台 200 万像素(准确地说是 1600x1301)的摄像机,以 20fps 的速度串流,每台摄像机都有一个 cx3 做 MIPI-USB 桥接。 我遇到的问题是,由于缺乏缓冲内存(主机速度不够快,因为它必须同时处理多个 CX3 数据流),CX3 有时会丢弃一些帧。
这是我目前使用的内存映射(我优化了一些数据区域,并使用 2 级引导加载器区域进行缓冲)。 定制 描述符区域 基数:0x40000000 大小:12 KB 代码区基数:0x40003000 大小: 134 KB 数据区基:0x40024800 大小: 32 KB 驱动程序堆基:0x4002C800 大小:32 KB 缓冲区基数:0x40034800 大小:302 KB -> 0x40080000 结束 这是 DMA 相关的定义。 我有 9 个(18 个,因为它们总是双倍的)16000 字节的缓冲区,因此 #define cx3_uvc_data_buf_size_ov(0x3E80)//(0x3E80) #else #definecx3_uvc_data_buf_size (0x8000) #endif #define cx3_uvc_prod_header(12)/* UVC DMA 缓冲区头大小 */ #define cx3_uvc_prod_footer(4)/* UVC DMA 缓冲区页脚大小 */ /* UVC 缓冲区大小 - 将映射到批量事务大小 */ #define cx3_uvc_stream_buf_size_ov(cx3_uvc_data_buf_size_ov + cx3_uvc_prod_header + cx3_uvc_prod_footer) /* UVC 缓冲区计数 */ #define cx3_uvc_stream_buf_count_ov(9) 每次 CX3 运行缓冲内存时,当 CyU3PDmaMultiChannelCommitBuffer 失败时,就会发生 CX3_DMA_RESET_EVENT,然后我就会重置数据流: CyCx3_ImageSensor_Stop_Stream(); 如果(glIsApplnActive) { uvc_app_stop(); } uvc_app_start(); CyCx3_ImageSensor_Start_Stream(); 我需要的是 CX3 更快地重置丢失的图像,或者我需要缓冲区内存。 我的问题是 1) CyU3PDmaMultiChannelCommitBuffer 失败后,如何使重置速度更快? 2) 如何将微控制器其他部分的内存用于帧缓冲? |
|
相关推荐
1个回答
|
|
要解决 CyU3PDmaMultiChannelCommitBuffer 失败的问题并提高重置速度,您可以尝试以下方法:
1. **优化数据流**:检查您的数据流是否有效,以减少不必要的数据传输。这可以通过调整图像分辨率、帧率或压缩算法来实现。 2. **增加缓冲区大小**:根据您的需求,增加数据区和驱动程序堆的大小。这将提供更多的缓冲空间,以减少帧丢弃的可能性。 3. **使用更高效的内存管理**:考虑使用更高效的内存管理策略,例如内存池或动态内存分配,以减少内存碎片和提高性能。 4. **优化 DMA 传输**:检查您的 DMA 配置,确保它已针对您的应用程序进行了优化。这可能包括调整传输大小、优先级和通道分配。 5. **减少中断开销**:尽量减少中断的使用,以降低处理中断的开销。这可以通过使用 DMA 完成回调或轮询 DMA 状态来实现。 6. **使用更高性能的主机处理器**:如果可能的话,升级您的主机处理器以提高处理速度。这将有助于更快地处理多个 CX3 数据流。 7. **调整操作系统调度**:根据您的应用程序需求,调整操作系统的调度策略,以确保关键任务获得足够的 CPU 时间。 8. **使用硬件加速**:如果可能的话,使用硬件加速来处理图像数据,以减轻 CPU 的负担。 9. **调试和性能分析**:使用调试工具和性能分析工具来识别性能瓶颈和优化代码。 10. **更新固件和驱动程序**:确保您的固件和驱动程序是最新的,以利用可能的性能改进和错误修复。 通过实施这些策略,您应该能够提高重置速度并减少 CyU3PDmaMultiChannelCommitBuffer 失败的情况。请注意,可能需要结合多种方法来实现最佳效果。 |
|
|
|
只有小组成员才能发言,加入小组>>
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5362 浏览 2 评论
4071 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3588 浏览 9 评论
1203 浏览 8 评论
3491 浏览 7 评论
409浏览 2评论
241浏览 2评论
350浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5379浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
412浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 05:07 , Processed in 0.617859 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号