Kernel_Lover

Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover  发布于  2018-01-16 10:34:43
采纳率 0%
17个问答
5685

关于视频缓冲池设置的问题

 
我是使用 hi3536 开发板的 sample_vdec.c 程序来解码多路视频,现在不知道如何根据视频通道数来设置视频缓冲池。大致看了程序,程序中有两个地方设置视频缓冲池(不知道还有没有其它地方也有设置视频缓冲池?)。

第一个地方:

HI_VOID        SAMPLE_COMM_VDEC_Sysconf(VB_CONF_S *pstVbConf, SIZE_S *pstSize)
{
    ...........................                 
    /* 块大小为 (pstSize->u32Width * pstSize->u32Height * 3) >> 1 */
   pstVbConf->astCommPool[0].u32BlkSize = (pstSize->u32Width * pstSize->u32Height * 3) >> 1;
   /* 视频缓冲池含有20个缓冲块 */
    pstVbConf->astCommPool[0].u32BlkCnt         = 20;
    ...................
}

上面应该是申请了一个视频缓冲池,视频缓冲池含有20个缓冲块,每一个缓冲块大小为 (pstSize->u32Width * pstSize->u32Height * 3) >> 1,但是视频缓冲池的缓冲块数和视频通道数好像没有关系。


第二个地方:

HI_VOID        SAMPLE_COMM_VDEC_ModCommPoolConf(VB_CONF_S *pstModVbConf,
                            PAYLOAD_TYPE_E enType, SIZE_S *pstSize, HI_S32 s32ChnNum)
{
    ...............
    /* 缓冲块的大小为 PicSize */
    pstModVbConf->astCommPool[0].u32BlkSize = PicSize;
    /* 每一个通道分配10个缓冲块 */
    pstModVbConf->astCommPool[0].u32BlkCnt  = 10*s32ChnNum;
    /* NOTICE:                           
    1. if the VDEC channel is H264 channel and support to decode B frame, then you should allocate PmvBuffer
    2. if the VDEC channel is MPEG4 channel, then you should allocate PmvBuffer.
    */
    if(PT_H265 == enType)
    {
        VB_PMV_BLK_SIZE(pstSize->u32Width, pstSize->u32Height, enType, PmvSize);
        
        pstModVbConf->astCommPool[1].u32BlkSize = PmvSize;
        pstModVbConf->astCommPool[1].u32BlkCnt  = 5*s32ChnNum;
    }
}

上面的程序中,为每一个通道分配10个缓冲块。就是缓冲块数是和通道数是有关的,但是第一个地方的程序居然和通道数是无关的。


我想问的是第一个地方是不是得改一下,和通道数相关才行吗?还有第二个地方中,每一个通道分配10个缓冲块,依据是什么呢?是大了还是小了?谢谢?





我来回答
回答32个
时间排序
认可量排序

hero

0个粉丝

1

问答

0

专栏

0

资料

hero 2018-01-16 14:08:48
认可0
依据像素大小改吧:):):):)

Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover 2018-01-16 15:47:42
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83359&ptid=38693]hero 发表于 2018-1-16 14:08[/url]
依据像素大小改吧[/quote]

依据像素大小,更改的是缓冲块的大小,现在我不清楚的是视频通道数和缓冲块数量之间的关系。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-01-17 07:48:56
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83366&ptid=38693]Kernel_Lover 发表于 2018-1-16 15:47[/url]
依据像素大小,更改的是缓冲块的大小,现在我不清楚的是视频通道数和缓冲块数量之间的关系。[/quote]

这个要看实际情况

如果是NVR的典型应用vdec->vpss->vo, 而且vdec解码帧存分配方式为PrivateVB, 那么是无需分配公共VB的, 如果是 ModuleVB或者UserVB, 那么只要分配vdec专用的VB即可, 同样无需分配公共VB




Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover 2018-01-17 09:41:14
认可0
本帖最后由 Kernel_Lover 于 2018-1-17 09:45 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=83502&ptid=38693]zhuangweiye 发表于 2018-1-17 07:48[/url]
这个要看实际情况

如果是NVR的典型应用vdec->vpss->vo, 而且vdec解码帧存分配方式为PrivateVB, 那么是 ...[/quote]

谢谢层主的回复!

我的是 nvr,没有视频输入(VI),确实就不会用到公共缓存池。按照层主的说法,我的应该就是属于 ModuleVB(使用的是海思的 sample_vdec.c 文件)。

在文档 《HiMPP V3.0 媒体处理软件开发参考》 中有:

在使用解码 ModuleVB 池方式时要在创建解码通道之前要先创建专属于 VDEC 的模块 VB 池,使用解码 UserVB 方式时也要先创建用于解码的视频缓存 VB 池,且要保证 VB 块的大小和个数满足当前解码通道所需图像 Buffer 的大小和个数。H264、H265 和 MPEG4 解码每个解码通道所需 VB 个数至少为参考帧+显示帧+1,JPEG 解码每个解码通道所需 VB 个数至少为显示帧+1。不同协议解码所需的图像 VB 块大小不同,具体计算方法可参见 VB_PIC_BLK_SIZE 定义。

上面的文档说:在使用解码 ModuleVB 池方式时要在创建解码通道之前要先创建专属于 VDEC 的模块 VB 池,说明第一个地方的程序,就是用于设置专属于 VDEC 的模块 VB 池,第二个地方的程序就是设置 ModuleVB 池。

先去看文档了,有问题再来请教层主!

Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover 2018-01-17 14:34:56
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83502&ptid=38693]zhuangweiye 发表于 2018-1-17 07:48[/url]
这个要看实际情况

如果是NVR的典型应用vdec->vpss->vo, 而且vdec解码帧存分配方式为PrivateVB, 那么是 ...[/quote]

我使用的是 ModuleVB 模式。



HI_VOID        SAMPLE_COMM_VDEC_ModCommPoolConf(VB_CONF_S *pstModVbConf,

    PAYLOAD_TYPE_E enType, SIZE_S *pstSize, HI_S32 s32ChnNum)

{

    .................
    pstModVbConf->astCommPool[0].u32BlkSize = PicSize;

    pstModVbConf->astCommPool[0].u32BlkCnt  = 10 * s32ChnNum;
    ...............
}

改为

HI_VOID        SAMPLE_COMM_VDEC_ModCommPoolConf(VB_CONF_S *pstModVbConf,

    PAYLOAD_TYPE_E enType, SIZE_S *pstSize, HI_S32 s32ChnNum)

{

    .................
    pstModVbConf->astCommPool[0].u32BlkSize = PicSize;

    pstModVbConf->astCommPool[0].u32BlkCnt  = 16 * s32ChnNum;
    ...............
}

运行程序,就会出现 Unable to handle kernel paging request at virtual address 00020002 的错误,发现是 16 这个值过大引起的,设置到12也是可以的,12以上的就不行了。

我想问的是,是不是因为视频缓冲池的缓冲块数量是有最大值的,才导致这个问题?如果有,这个最大值是多少?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-01-17 14:48:52
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83536&ptid=38693]Kernel_Lover 发表于 2018-1-17 14:34[/url]
我使用的是 ModuleVB 模式。


[/quote]



这是由于调高了VB池的个数, 导致MMZ使用量大于了实际分配的值




Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover 2018-01-17 15:13:18
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83538&ptid=38693]zhuangweiye 发表于 2018-1-17 14:48[/url]
这是由于调高了VB池的个数, 导致MMZ使用量大于了实际分配的值[/quote]

分配给 mmz 的内存不够吗?我分配给 mmz 的内存大小为 768 M,在加载内核模块后,只使用了 40M 左右,还剩余 700M左右,缓冲块大小为 720 * 576 * 0.5,如果是4路,每一路对应16个缓冲块,大约使用了16M 左右的空间,感觉不应该是 mmz 内存不够啊。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-01-17 15:33:22
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83539&ptid=38693]Kernel_Lover 发表于 2018-1-17 15:13[/url]
分配给 mmz 的内存不够吗?我分配给 mmz 的内存大小为 768 M,在加载内核模块后,只使用了 40M 左右,还 ...[/quote]

这个...

方便的话, 贴个运行中的 /proc/media-mem和/proc/umap/vb看看

Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover 2018-01-17 15:37:01
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83547&ptid=38693]zhuangweiye 发表于 2018-1-17 15:33[/url]
这个...

方便的话, 贴个运行中的 /proc/media-mem和/proc/umap/vb看看[/quote]

请问一下,程序运行时,输入不了命令,是不是打开另一个窗口之类的,我不大清楚,谢谢啊!

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-01-17 16:03:48
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83548&ptid=38693]Kernel_Lover 发表于 2018-1-17 15:37[/url]
请问一下,程序运行时,输入不了命令,是不是打开另一个窗口之类的,我不大清楚,谢谢啊![/quote]

有网络的话, 可以用telnet开很多个窗口

Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover 2018-01-17 16:32:41
认可0
本帖最后由 Kernel_Lover 于 2018-1-17 16:35 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=83547&ptid=38693]zhuangweiye 发表于 2018-1-17 15:33[/url]
这个...

方便的话, 贴个运行中的 /proc/media-mem和/proc/umap/vb看看[/quote]

数值设置为10,能够正常运行的信息:

/proc/media-mem

+---ZONE: PHYS(0x50000000, 0x7FFFFFFF), GFP=0, nBYTES=786432KB, NAME="anonymous"
   |-MMB: phys(0x50000000, 0x50002FFF), kvirt=0x  (null), flags=0x00000000, length=12KB,        name="SYS_scale_coef"
   |-MMB: phys(0x50003000, 0x50005FFF), kvirt=0x  (null), flags=0x00000000, length=12KB,        name="SYS_scale_coef"
   |-MMB: phys(0x50006000, 0x50085FFF), kvirt=0x  (null), flags=0x00000000, length=512KB,       name="TDE_MemPool"
   |-MMB: phys(0x50086000, 0x500D2FFF), kvirt=0x  (null), flags=0x00000000, length=308KB,       name="VGS_NodeBuf"
   |-MMB: phys(0x500D3000, 0x5011FFFF), kvirt=0x  (null), flags=0x00000000, length=308KB,       name="VGS_VpssNodeBuf"
   |-MMB: phys(0x50120000, 0x50120FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="RgnModInfo"
   |-MMB: phys(0x50121000, 0x50121FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="RgnModInfo"
   |-MMB: phys(0x50122000, 0x5012AFFF), kvirt=0x  (null), flags=0x00000000, length=36KB,        name="vpss_drv_queue"
   |-MMB: phys(0x5012B000, 0x50133FFF), kvirt=0x  (null), flags=0x00000000, length=36KB,        name="RgnModInfo"
   |-MMB: phys(0x50134000, 0x5013CFFF), kvirt=0x  (null), flags=0x00000000, length=36KB,        name="RgnModInfo"
   |-MMB: phys(0x5013D000, 0x5015FFFF), kvirt=0x  (null), flags=0x00000000, length=140KB,       name="RgnModInfo"
   |-MMB: phys(0x50160000, 0x50182FFF), kvirt=0x  (null), flags=0x00000000, length=140KB,       name="RgnModInfo"
   |-MMB: phys(0x50183000, 0x501A5FFF), kvirt=0x  (null), flags=0x00000000, length=140KB,       name="RgnModInfo"
   |-MMB: phys(0x501A6000, 0x501AEFFF), kvirt=0x  (null), flags=0x00000000, length=36KB,        name="VoCoef"
   |-MMB: phys(0x501AF000, 0x501DAFFF), kvirt=0x  (null), flags=0x00000000, length=176KB,       name="RgnModInfo"
   |-MMB: phys(0x501DB000, 0x50206FFF), kvirt=0x  (null), flags=0x00000000, length=176KB,       name="RgnModInfo"
   |-MMB: phys(0x50207000, 0x50232FFF), kvirt=0x  (null), flags=0x00000000, length=176KB,       name="RgnModInfo"
   |-MMB: phys(0x50233000, 0x521D6FFF), kvirt=0x  (null), flags=0x00000000, length=32400KB,     name="hifb_layer0"
   |-MMB: phys(0x521D7000, 0x529BFFFF), kvirt=0x  (null), flags=0x00000000, length=8100KB,      name="hifb_layer1"
   |-MMB: phys(0x529C0000, 0x52BDBFFF), kvirt=0x  (null), flags=0x00000000, length=2160KB,      name="hifb_layer2"
   |-MMB: phys(0x52BDC000, 0x52BFBFFF), kvirt=0x  (null), flags=0x00000000, length=128KB,       name="hifb_layer3"
   |-MMB: phys(0x52BFC000, 0x52C1BFFF), kvirt=0x  (null), flags=0x00000000, length=128KB,       name="hifb_layer4"
   |-MMB: phys(0x52C1C000, 0x52C20FFF), kvirt=0x  (null), flags=0x00000000, length=20KB,        name="RgnModInfo"
   |-MMB: phys(0x52C21000, 0x52C55FFF), kvirt=0x  (null), flags=0x00000000, length=212KB,       name="IVE_QUEUE"
   |-MMB: phys(0x52C56000, 0x52C56FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="IVE_TEMP_NODE"
   |-MMB: phys(0x52C57000, 0x546B4FFF), kvirt=0x  (null), flags=0x00000000, length=27000KB,     name="VbPool"
   |-MMB: phys(0x546B5000, 0x595CEFFF), kvirt=0x  (null), flags=0x00000000, length=81000KB,     name="VbPool"
   |-MMB: phys(0x595CF000, 0x5CBB6FFF), kvirt=0x  (null), flags=0x00000000, length=55200KB,     name="ModVb"
   |-MMB: phys(0x5CBB7000, 0x5CECAFFF), kvirt=0x  (null), flags=0x00000000, length=3152KB,      name="Vdec0_StreamBuf"
   |-MMB: phys(0x5CECB000, 0x5CECBFFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Vdec0_UsrBuf"
   |-MMB: phys(0x5CECC000, 0x5CECCFFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Vdec0_PtsBuf"
   |-MMB: phys(0x5CECD000, 0x5CF76FFF), kvirt=0x  (null), flags=0x00000000, length=680KB,       name="VFMW_Hal_0"
   |-MMB: phys(0x5CF77000, 0x5D020FFF), kvirt=0x  (null), flags=0x00000000, length=680KB,       name="VFMW_Hal_1"
   |-MMB: phys(0x5D021000, 0x5D0CAFFF), kvirt=0x  (null), flags=0x00000000, length=680KB,       name="VFMW_Hal_2"
   |-MMB: phys(0x5D0CB000, 0x5D179FFF), kvirt=0x  (null), flags=0x00000000, length=700KB,       name="VFMW_Scd_Msg"
   |-MMB: phys(0x5D17A000, 0x5D181FFF), kvirt=0x  (null), flags=0x00000000, length=32KB,        name="VFMW_Tracer"
   |-MMB: phys(0x5D182000, 0x5D1F2FFF), kvirt=0x  (null), flags=0x00000000, length=452KB,       name="Vdec0_Ctx"
   |-MMB: phys(0x5D1F3000, 0x5D34CFFF), kvirt=0x  (null), flags=0x00000000, length=1384KB,      name="Vdec0_Scd"
   |-MMB: phys(0x5D34D000, 0x5D660FFF), kvirt=0x  (null), flags=0x00000000, length=3152KB,      name="Vdec1_StreamBuf"
   |-MMB: phys(0x5D661000, 0x5D661FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Vdec1_UsrBuf"
   |-MMB: phys(0x5D662000, 0x5D662FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Vdec1_PtsBuf"
   |-MMB: phys(0x5D663000, 0x5D6D3FFF), kvirt=0x  (null), flags=0x00000000, length=452KB,       name="Vdec1_Ctx"
   |-MMB: phys(0x5D6D4000, 0x5D82DFFF), kvirt=0x  (null), flags=0x00000000, length=1384KB,      name="Vdec1_Scd"
   |-MMB: phys(0x5D82E000, 0x5DB41FFF), kvirt=0x  (null), flags=0x00000000, length=3152KB,      name="Vdec2_StreamBuf"
   |-MMB: phys(0x5DB42000, 0x5DB42FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Vdec2_UsrBuf"
   |-MMB: phys(0x5DB43000, 0x5DB43FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Vdec2_PtsBuf"
   |-MMB: phys(0x5DB44000, 0x5DBB4FFF), kvirt=0x  (null), flags=0x00000000, length=452KB,       name="Vdec2_Ctx"
   |-MMB: phys(0x5DBB5000, 0x5DD0EFFF), kvirt=0x  (null), flags=0x00000000, length=1384KB,      name="Vdec2_Scd"
   |-MMB: phys(0x5DD0F000, 0x5E022FFF), kvirt=0x  (null), flags=0x00000000, length=3152KB,      name="Vdec3_StreamBuf"
   |-MMB: phys(0x5E023000, 0x5E023FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Vdec3_UsrBuf"
   |-MMB: phys(0x5E024000, 0x5E024FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Vdec3_PtsBuf"
   |-MMB: phys(0x5E025000, 0x5E095FFF), kvirt=0x  (null), flags=0x00000000, length=452KB,       name="Vdec3_Ctx"
   |-MMB: phys(0x5E096000, 0x5E1EFFFF), kvirt=0x  (null), flags=0x00000000, length=1384KB,      name="Vdec3_Scd"
   |-MMB: phys(0x5E1F0000, 0x5E479FFF), kvirt=0x  (null), flags=0x00000000, length=2600KB,      name="Ref&Mad buf-0"
   |-MMB: phys(0x5E47A000, 0x5E47AFFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Dci buf-0"
   |-MMB: phys(0x5E47B000, 0x5E47BFFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Grp RegionLuma b"
   |-MMB: phys(0x5E47C000, 0x5E47CFFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Chn RgnLuma buf"
   |-MMB: phys(0x5E47D000, 0x5E47EFFF), kvirt=0x  (null), flags=0x00000000, length=8KB, name="model buf-0"
   |-MMB: phys(0x5E47F000, 0x5E708FFF), kvirt=0x  (null), flags=0x00000000, length=2600KB,      name="Ref&Mad buf-1"
   |-MMB: phys(0x5E709000, 0x5E709FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Dci buf-1"
   |-MMB: phys(0x5E70A000, 0x5E70AFFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Grp RegionLuma b"
   |-MMB: phys(0x5E70B000, 0x5E70BFFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Chn RgnLuma buf"
   |-MMB: phys(0x5E70C000, 0x5E70DFFF), kvirt=0x  (null), flags=0x00000000, length=8KB, name="model buf-1"
   |-MMB: phys(0x5E70E000, 0x5E997FFF), kvirt=0x  (null), flags=0x00000000, length=2600KB,      name="Ref&Mad buf-2"
   |-MMB: phys(0x5E998000, 0x5E998FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Dci buf-2"
   |-MMB: phys(0x5E999000, 0x5E999FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Grp RegionLuma b"
   |-MMB: phys(0x5E99A000, 0x5E99AFFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Chn RgnLuma buf"
   |-MMB: phys(0x5E99B000, 0x5E99CFFF), kvirt=0x  (null), flags=0x00000000, length=8KB, name="model buf-2"
   |-MMB: phys(0x5E99D000, 0x5EC26FFF), kvirt=0x  (null), flags=0x00000000, length=2600KB,      name="Ref&Mad buf-3"
   |-MMB: phys(0x5EC27000, 0x5EC27FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Dci buf-3"
   |-MMB: phys(0x5EC28000, 0x5EC28FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Grp RegionLuma b"
   |-MMB: phys(0x5EC29000, 0x5EC29FFF), kvirt=0x  (null), flags=0x00000000, length=4KB, name="Chn RgnLuma buf"
   |-MMB: phys(0x5EC2A000, 0x5EC2BFFF), kvirt=0x  (null), flags=0x00000000, length=8KB, name="model buf-3"
   |-MMB: phys(0x5EC2C000, 0x5F171FFF), kvirt=0x  (null), flags=0x00000000, length=5400KB,      name="[VOU]VHD(0)"

---MMZ_USE_INFO:
total size=786432KB(768MB),used=247240KB(241MB + 456KB),remain=539192KB(526MB + 568KB),zone_number=1,block_number=74


/proc/umap/vb

[VB] Version: [Hi3536_MPP_V2.0.5.0 B020 Release], Build Time[Jun 14 2016, 09:16:40]

-----VB PUB CONFIG-------------------------------------------------------------
Max Count of Pools:        256

-----VB SUPPLEMENT ATTR--------------------------------------------------------
Supplement Config:     0
Supplement Size:       0
Vb Total Cnt:         74

-----COMMON POOL CONFIG--------------------------------------------------------
PoolId           0           1
Size       1382400     8294400
Count           20          10

-----MODULE COMMON POOL CONFIG of VB_UID <4> ---------------------------------
PoolId           0
Size       1413120
Count           40

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     0  0x52c57000  0x       0         1       -1   1382400        20      20(20)        20

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     1  0x546b5000  0x       0         1       -1   8294400        10      10(10)        10

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     2  0x595cf000  0x       0         1        4   1413120        40      28(28)        25
BLK   VIU   VOU   VGS  VENC  VDEC   VDA H264E JPEGE MPEGE H264D JPEGD MPEGD  VPSS   GRP   MPI  PCIV    AI  AENC    RC  VFMW  USER H265E
  21     0     0     0     0     1     0     0     0     0     0     0     0     1     0     0     0     0     0     0     1     0     0
  13     0     0     0     0     1     0     0     0     0     0     0     0     1     0     0     0     0     0     0     1     0     0
  14     0     0     0     0     1     0     0     0     0     0     0     0     1     0     0     0     0     0     0     1     0     0
   9     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0
  31     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0
  23     0     0     0     0     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   3     0     0     0     0     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   2     0     0     0     0     1     0     0     0     0     0     0     0     1     0     0     0     0     0     0     1     0     0
  32     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0
  33     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0
  22     0     0     0     0     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   5     0     0     0     0     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
Sum      0     0     0     0     8     0     0     0     0     0     0     0     4     0     0     0     0     0     0     8     0     0

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     3  0x5ec2c000  0x       0         0       -2   1382400         4       0(0)         0
BLK   VIU   VOU   VGS  VENC  VDEC   VDA H264E JPEGE MPEGE H264D JPEGD MPEGD  VPSS   GRP   MPI  PCIV    AI  AENC    RC  VFMW  USER H265E
   0     0     7     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   1     0     8     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   2     0     7     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   3     0     6     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
Sum      0     4     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0


Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover 2018-01-17 16:51:01
认可0
数值设置为12,能够正常运行的信息:

/proc/media-mem

total size=786432KB(768MB),used=258280KB(252MB + 232KB),remain=528152KB(515MB + 792KB),zone_number=1,block_number=74


/proc/umap/vb

[VB] Version: [Hi3536_MPP_V2.0.5.0 B020 Release], Build Time[Jun 14 2016, 09:16:40]

-----VB PUB CONFIG-------------------------------------------------------------
Max Count of Pools:        256

-----VB SUPPLEMENT ATTR--------------------------------------------------------
Supplement Config:     0
Supplement Size:       0
Vb Total Cnt:         82

-----COMMON POOL CONFIG--------------------------------------------------------
PoolId           0           1
Size       1382400     8294400
Count           20          10

-----MODULE COMMON POOL CONFIG of VB_UID <4> ---------------------------------
PoolId           0
Size       1413120
Count           48

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     0  0x52c1c000  0x       0         1       -1   1382400        20      20(20)        20

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     1  0x5467a000  0x       0         1       -1   8294400        10      10(10)        10

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     2  0x595cf000  0x       0         1        4   1413120        48      36(36)        28
BLK   VIU   VOU   VGS  VENC  VDEC   VDA H264E JPEGE MPEGE H264D JPEGD MPEGD  VPSS   GRP   MPI  PCIV    AI  AENC    RC  VFMW  USER H265E
  38     0     0     0     0     1     0     0     0     0     0     0     0     1     0     0     0     0     0     0     1     0     0
   3     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0
  14     0     0     0     0     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   5     0     0     0     0     1     0     0     0     0     0     0     0     1     0     0     0     0     0     0     1     0     0
   7     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0
  33     0     0     0     0     1     0     0     0     0     0     0     0     1     0     0     0     0     0     0     1     0     0
  37     0     0     0     0     1     0     0     0     0     0     0     0     1     0     0     0     0     0     0     1     0     0
  15     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0
  10     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0
  13     0     0     0     0     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
  40     0     0     0     0     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   1     0     0     0     0     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
Sum      0     0     0     0     8     0     0     0     0     0     0     0     4     0     0     0     0     0     0     8     0     0

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     3  0x5f6f4000  0x       0         0       -2   1382400         4       0(0)         0
BLK   VIU   VOU   VGS  VENC  VDEC   VDA H264E JPEGE MPEGE H264D JPEGD MPEGD  VPSS   GRP   MPI  PCIV    AI  AENC    RC  VFMW  USER H265E
   0     0     9     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   1     0     5     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   2     0     8     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   3     0     8     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
Sum      0     4     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-01-17 16:53:55
认可0
本帖最后由 zhuangweiye 于 2018-1-17 16:56 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=83555&ptid=38693]Kernel_Lover 发表于 2018-1-17 16:32[/url]
数值设置为10,能够正常运行的信息:

/proc/media-mem
[/quote]

楼主确定是1G的实际内存? 个人感觉是不是只有512M,

从media-mem看现在实际使用只到0x5F171FFF, 楼主可以加大VB个数, 看看是否一超过0x5fffffff就出问题

当然也可以复杂点不改测试代码,直接调整bootargs和load3536.sh把MMZ的起始位置向下调整100M,看看测试代码还能跑吗?

Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover 2018-01-17 17:27:56
认可0
本帖最后由 Kernel_Lover 于 2018-1-17 17:32 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=83558&ptid=38693]zhuangweiye 发表于 2018-1-17 16:53[/url]
楼主确定是1G的实际内存? 个人感觉是不是只有512M,

从media-mem看现在实际使用只到0x5F171FFF, 楼主 ...[/quote]

加大缓冲块的数量,确实就不能运行了,看起来好像实际内存大小确实是512M。但是我用的开发板有4个同样的内存芯片,型号是k4b1g1646g-bck0。

芯片手册里面的容量大小为:64M * 16 = 1G,数值 16 应该表示位宽为16,会不会可能是内存芯片的物理连接采用的是8位的位宽,导致 1G 的内存只能寻址512M?我也不熟悉硬件,不知道有没有这种可能?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-01-17 17:40:27
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83562&ptid=38693]Kernel_Lover 发表于 2018-1-17 17:27[/url]
加大缓冲块的数量,确实就不能运行了,看起来好像实际内存大小确实是512M。但是我用的开发板有4个同样 ...[/quote]

楼主还可以试一下, 把那个8294400的VB个数减少到1个,然后加大vdec的vb个数看看是否能运行

至于硬件问题说不好, 当然可以先检查一下制作uboot的xls文档,看看是否配对了

Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover 2018-01-17 18:03:15
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83563&ptid=38693]zhuangweiye 发表于 2018-1-17 17:40[/url]
楼主还可以试一下, 把那个8294400的VB个数减少到1个,然后加大vdec的vb个数看看是否能运行

至于硬件问 ...[/quote]

可能是 uboot 的 xls 文档设置的原因了,我同事使用的是海思的 demo 板 内存大小为 512M。我生成 uboot 映像时,是直接用海思提供的 reg_info.bin,很有可能  reg_info.bin 将内存大小设置为 512M,明天上班看一下是不是这个问题,谢谢层主的帮忙。

Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover 2018-01-19 09:25:57
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83563&ptid=38693]zhuangweiye 发表于 2018-1-17 17:40[/url]
楼主还可以试一下, 把那个8294400的VB个数减少到1个,然后加大vdec的vb个数看看是否能运行

至于硬件问 ...[/quote]

把8294400的 VB 个数减少到1个,加大 vdec 的 vb 个数到 16,就没有问题了,确实是因为内存大小只有512M的原因,昨天配置 ddr 一直加载不了内核模块,最后发现是因为一个内存芯片只有128M,而不是1G,即使配置了1G 或者是 3G,都是加载不了内核驱动的的,还有就是如果配置为4G,uboot 就直接烧写不了。可能是因为 0x40000000 ~ 0xffffffff 已经是3GB了,32位的 cpu 的寻址范围为[0 , 0xffffffff]。


内存芯片手册有:

The 1Gb DDR3 SDRAM G-die is organized as a 8Mbit x 16 I/Os x 8banks device

一个内存芯片就是128M,1Gb = 128M = 1GB / 8

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-01-19 10:32:55
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83562&ptid=38693]Kernel_Lover 发表于 2018-1-17 17:27[/url]
加大缓冲块的数量,确实就不能运行了,看起来好像实际内存大小确实是512M。但是我用的开发板有4个同样 ...[/quote]

仔细看了一下这个芯片是1Gbits, 4个一共4Gbits, 也就是512MBytes

Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover 2018-01-19 10:41:28
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83611&ptid=38693]zhuangweiye 发表于 2018-1-19 10:32[/url]
仔细看了一下这个芯片是1Gbits, 4个一共4Gbits, 也就是512MBytes[/quote]

对啊,4个内存芯片就是512M。芯片手册里的单位标注的不清晰,太误导人了。64M * 16 ,其中64M 的准确单位应该为64Mb

ksniper

0个粉丝

1

问答

0

专栏

0

资料

ksniper 2018-01-20 16:12:59
认可0
哈 大B 小b 害死人;P
加载中···
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区