ljh4371

ljh4371

0个粉丝

3

问答

0

专栏

0

资料

ljh4371  发布于  2016-06-15 10:53:18
采纳率 0%
3个问答
8676

hi3518ev100+ov9712:HI_MPI_VPSS_UserGetFrame出错

 
hi3518ev100+ov9712
HI_MPI_VPSS_UserGetFrame出错,错误码为a008800d,分配 BUF 池失败。

代码如下:
    HI_S32 s32Ret;
    VIDEO_FRAME_INFO_S stFrame;
    HI_CHAR szYuvName[128];
    HI_CHAR szPixFrm[10];
    FILE *pfd;
    VPSS_GRP VpssGrp = Grp;
    VPSS_CHN VpssChn = Chn;
    HI_U32 u32Cnt = u32FrameCnt;
    HI_U32 u32Depth = 1;
    VPSS_CHN_MODE_S stOrigVpssMode, stVpssMode;

    if (HI_MPI_VPSS_GetChnMode(VpssGrp,VpssChn,&stOrigVpssMode) != HI_SUCCESS)
    {
        printf("get mode error!!!\n");
        return (HI_VOID *)-1;
    }else printf("HI_MPI_VPSS_GetChnMode success!\n");

    stVpssMode.enChnMode = VPSS_CHN_MODE_USER;
    if (u32PixelFormat == 0)
    {
        stVpssMode.enPixelFormat = PIXEL_FORMAT_YUV_SEMIPLANAR_420;
    }
    else
    {
       stVpssMode.enPixelFormat = PIXEL_FORMAT_YUV_SEMIPLANAR_422;
    }

    stVpssMode.u32Width = u32Width;
    stVpssMode.u32Height = u32Height;

    if (HI_MPI_VPSS_SetChnMode(VpssGrp,VpssChn,&stVpssMode) != HI_SUCCESS)
    {
        printf("set mode error!!!\n");
        return (HI_VOID *)-1;
    }else printf("HI_MPI_VPSS_SetChnMode success!\n");

    if (HI_MPI_VPSS_SetDepth(VpssGrp,VpssChn,u32Depth)!=HI_SUCCESS)
    {
        printf("set depth error!!!\n");
        return (HI_VOID *)-1;
    }else printf("HI_MPI_VPSS_SetDepth success!\n");

    memset(&stFrame,0,sizeof(stFrame));
    s32Ret = HI_MPI_VPSS_UserGetFrame(VpssGrp, VpssChn, &stFrame);
    while (s32Ret!=HI_SUCCESS)
    {
        printf("HI_MPI_VPSS_UserGetFrame:get frame error!!!-------------%x\n",s32Ret);
        sleep(1);
        s32Ret = HI_MPI_VPSS_UserGetFrame(VpssGrp, VpssChn, &stFrame);
    }

执行结果:
HI_MPI_VPSS_GetChnMode success!
HI_MPI_VPSS_SetChnMode success!
HI_MPI_VPSS_SetDepth success!
HI_MPI_VPSS_UserGetFrame:get frame error!!!-------------a008800d

请问各位大神问题出在哪?该如何解决?
我来回答
回答14个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-06-15 11:08:08
认可0
0xA008800D HI_ERR_VPSS_NOBUF

意思是得不到VB, 去分配几个, 就是在初始化的时候调用HI_MPI_SYS_SetConf的地方

VB大小要根据实际情况来确定

ljh4371

0个粉丝

3

问答

0

专栏

0

资料

ljh4371 2016-06-15 11:15:10
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31694&ptid=11606]zhuangweiye 发表于 2016-6-15 11:08[/url]
0xA008800D HI_ERR_VPSS_NOBUF

意思是得不到VB, 去分配几个, 就是在初始化的时候调用HI_MPI_SYS_SetConf ...[/quote]

多谢大神指点!!!!!

ljh4371

0个粉丝

3

问答

0

专栏

0

资料

ljh4371 2016-06-15 16:45:38
认可0
本帖最后由 ljh4371 于 2016-6-15 16:48 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=31694&ptid=11606]zhuangweiye 发表于 2016-6-15 11:08[/url]
0xA008800D HI_ERR_VPSS_NOBUF

意思是得不到VB, 去分配几个, 就是在初始化的时候调用HI_MPI_SYS_SetConf ...[/quote]

请教大神:VB大小具体应该如何确定?
我现在的参数:
/* video buffer*/
u32BlkSize = 720*576*2;//829440
stVbConf.astCommPool[0].u32BlkSize = u32BlkSize;
stVbConf.astCommPool[0].u32BlkCnt = 20;
/* hist buf*/
stVbConf.astCommPool[1].u32BlkSize = u32BlkSize;//(196*4);
stVbConf.astCommPool[1].u32BlkCnt = 10;

stSysConf.u32AlignWidth = 768;//SAMPLE_SYS_ALIGN_WIDTH;

另外,其他相关参数如下:
VpssGrp = 0;
VpssChn = 0;
stGrpVpssAttr.u32MaxW = 720;
stGrpVpssAttr.u32MaxH = 576;
stGrpVpssAttr.bDrEn = HI_FALSE;
stGrpVpssAttr.bDbEn = HI_FALSE;
stGrpVpssAttr.bIeEn = HI_FALSE;
stGrpVpssAttr.bNrEn = HI_FALSE;
stGrpVpssAttr.bHistEn = HI_FALSE;
stGrpVpssAttr.enDieMode = VPSS_DIE_MODE_NODIE;
stGrpVpssAttr.enPixFmt = PIXEL_FORMAT_YUV_SEMIPLANAR_420;

stGrpVpssAttr.bIeEn = HI_TRUE;
stGrpVpssAttr.bNrEn = HI_TRUE;

stCropInfo.bEnable = 1;
stCropInfo.enCropCoordinate = VPSS_CROP_ABS_COOR;
stCropInfo.stCropRect.s32X = 180;
stCropInfo.stCropRect.s32Y = 252;
stCropInfo.stCropRect.u32Width = 720;
stCropInfo.stCropRect.u32Height = 576;

stChnAttr.bFrameEn = 0;
stChnAttr.bSpEn = 1;

HI_U32 u32FrmCnt = 1;
HI_U32 u32Width = 720;
HI_U32 u32Height = 576;
HI_U32 u32PixelFormat = 0;

HI_U32 u32Depth = 8;

stVpssMode.enChnMode = VPSS_CHN_MODE_USER;

麻烦大神帮忙看下,是哪里出的问题,谢谢!

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-06-15 17:23:04
认可0
本帖最后由 zhuangweiye 于 2016-6-15 17:27 编辑


提个问题, VPSS绑定VI了吗?

一般流程如下:(省略了get和一些参数, 只为了显示函数次序)
HI_MPI_VPSS_CreateGrp();
HI_MPI_VPSS_SetGrpAttr();
HI_MPI_VPSS_SetChnMode();
HI_MPI_VPSS_SetDepth();
HI_MPI_VPSS_EnableChn();
HI_MPI_VPSS_StartGrp();
HI_MPI_VPSS_UserGetFrame();

ljh4371

0个粉丝

3

问答

0

专栏

0

资料

ljh4371 2016-06-15 17:30:44
认可0
本帖最后由 ljh4371 于 2016-6-15 17:37 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=31762&ptid=11606]zhuangweiye 发表于 2016-6-15 17:23[/url]
提个问题, VPSS绑定VI了吗?[/quote]

vpss绑定vi?哪个api?只知道vi需要绑定chn,HI_MPI_VI_ChnBind

知道了,是HI_MPI_SYS_Bind,查了下代码,确实没有用到这个API……

ljh4371

0个粉丝

3

问答

0

专栏

0

资料

ljh4371 2016-06-15 17:47:50
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31762&ptid=11606]zhuangweiye 发表于 2016-6-15 17:23[/url]
提个问题, VPSS绑定VI了吗?

一般流程如下:(省略了get和一些参数, 只为了显示函数次序)
[/quote]

vpss绑定vi?哪个api?只知道vi需要绑定chn,HI_MPI_VI_ChnBind
知道了,是HI_MPI_SYS_Bind,查了下代码,确实没有用到这个API……
这个API应该放到哪一部分呢?sample没看到合适的例子……

ljh4371

0个粉丝

3

问答

0

专栏

0

资料

ljh4371 2016-06-15 18:30:41
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31762&ptid=11606]zhuangweiye 发表于 2016-6-15 17:23[/url]
提个问题, VPSS绑定VI了吗?

一般流程如下:(省略了get和一些参数, 只为了显示函数次序)
[/quote]

流程应该没问题啊,都是照搬sample里面的……

ljh4371

0个粉丝

3

问答

0

专栏

0

资料

ljh4371 2016-06-15 18:41:01
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31762&ptid=11606]zhuangweiye 发表于 2016-6-15 17:23[/url]
提个问题, VPSS绑定VI了吗?

一般流程如下:(省略了get和一些参数, 只为了显示函数次序)
[/quote]

我是分为几个函数做的,现在按照程序运行的流程将相关代码整理如下,大神帮忙看看,不胜感激:

u32BlkSize = 1280*800*2;//720*576*2;//829440
stVbConf.astCommPool[0].u32BlkSize = u32BlkSize;
stVbConf.astCommPool[0].u32BlkCnt = 10;
stVbConf.astCommPool[1].u32BlkSize = (196*4);
stVbConf.astCommPool[1].u32BlkCnt = 6;

/******************************************
step 2: mpp system init.
******************************************/
MPP_SYS_CONF_S stSysConf = {0};
HI_S32 s32Ret = HI_FAILURE;

HI_MPI_SYS_Exit();
HI_MPI_VB_Exit();

if (NULL == pstVbConf)
{
SAMPLE_PRT("input parameter is null, it is invaild!\n");
return HI_FAILURE;
}

s32Ret = HI_MPI_VB_SetConf(pstVbConf);
if (HI_SUCCESS != s32Ret)
{
SAMPLE_PRT("HI_MPI_VB_SetConf failed!\n");
return HI_FAILURE;
}

s32Ret = HI_MPI_VB_Init();
if (HI_SUCCESS != s32Ret)
{
SAMPLE_PRT("HI_MPI_VB_Init failed!----%x\n",s32Ret);
return HI_FAILURE;
}

stSysConf.u32AlignWidth = 16;//768;//SAMPLE_SYS_ALIGN_WIDTH;//ljh
s32Ret = HI_MPI_SYS_SetConf(&stSysConf);
if (HI_SUCCESS != s32Ret)
{
SAMPLE_PRT("HI_MPI_SYS_SetConf failed\n");
return HI_FAILURE;
}

s32Ret = HI_MPI_SYS_Init();
if (HI_SUCCESS != s32Ret)
{
SAMPLE_PRT("HI_MPI_SYS_Init failed!\n");
return HI_FAILURE;
}


VPSS_GRP_ATTR_S stGrpVpssAttr;
VPSS_CHN_ATTR_S stChnAttr;
VPSS_CROP_INFO_S stCropInfo;
VPSS_GRP VpssGrp;
VPSS_CHN VpssChn;
VpssGrp = 0;
VpssChn = 0;
stGrpVpssAttr.u32MaxW = 1280;//720;
stGrpVpssAttr.u32MaxH = 800;//576;
stGrpVpssAttr.bDrEn = HI_FALSE;
stGrpVpssAttr.bDbEn = HI_FALSE;
stGrpVpssAttr.bIeEn = HI_FALSE;
stGrpVpssAttr.bNrEn = HI_FALSE;
stGrpVpssAttr.bHistEn = HI_FALSE;
stGrpVpssAttr.enDieMode = VPSS_DIE_MODE_NODIE;
stGrpVpssAttr.enPixFmt = PIXEL_FORMAT_YUV_SEMIPLANAR_420;

s32Ret = HI_MPI_VPSS_CreateGrp(VpssGrp, &stGrpVpssAttr);
if(s32Ret != HI_SUCCESS)
{
printf("HI_MPI_VPSS_CreateGrp abnormally!-------%x\n",s32Ret);
//return s32Ret;
}else printf("HI_MPI_VPSS_CreateGrp success!\n");

s32Ret = HI_MPI_VPSS_GetGrpAttr(VpssGrp, &stGrpVpssAttr);
if(s32Ret != HI_SUCCESS)
{
printf("HI_MPI_VPSS_GetGrpAttr abnormally!-------%x\n",s32Ret);
//return s32Ret;
}else printf("HI_MPI_VPSS_GetGrpAttr success!\n");

stGrpVpssAttr.bIeEn = HI_TRUE;
stGrpVpssAttr.bNrEn = HI_TRUE;

s32Ret = HI_MPI_VPSS_SetGrpAttr(VpssGrp, &stGrpVpssAttr);
if(s32Ret != HI_SUCCESS)
{
printf("HI_MPI_VPSS_SetGrpAttr abnormally!-------%x\n",s32Ret);
//return s32Ret;
}else printf("HI_MPI_VPSS_SetGrpAttr success!\n");

s32Ret = HI_MPI_VPSS_GetCropCfg(VpssGrp, &stCropInfo);
if(s32Ret != HI_SUCCESS)
{
printf("HI_MPI_VPSS_GetCropCfg abnormally!-------%x\n",s32Ret);
//return s32Ret;
}else printf("HI_MPI_VPSS_GetCropCfg success!\n");

stCropInfo.bEnable = 1;
stCropInfo.enCropCoordinate = VPSS_CROP_ABS_COOR;
stCropInfo.stCropRect.s32X = 180;
stCropInfo.stCropRect.s32Y = 252;
stCropInfo.stCropRect.u32Width = 1280;//720;
stCropInfo.stCropRect.u32Height = 800;//576;

s32Ret = HI_MPI_VPSS_SetCropCfg(VpssGrp, &stCropInfo);
if(s32Ret != HI_SUCCESS)
{
printf("HI_MPI_VPSS_SetCropCfg abnormally!-------%x\n",s32Ret);
//return s32Ret;
}else printf("HI_MPI_VPSS_SetCropCfg success!\n");

s32Ret = HI_MPI_VPSS_GetChnAttr(VpssGrp, VpssChn,&stChnAttr);
if(s32Ret != HI_SUCCESS)
{
printf("HI_MPI_VPSS_GetChnAttr abnormally!-------%x\n",s32Ret);
//return s32Ret;
}else printf("HI_MPI_VPSS_GetChnAttr success!\n");

stChnAttr.bFrameEn = 0;
stChnAttr.bSpEn = 1;

s32Ret = HI_MPI_VPSS_SetChnAttr(VpssGrp, VpssChn,&stChnAttr);
if(s32Ret != HI_SUCCESS)
{
printf("HI_MPI_VPSS_SetChnAttr abnormally!-------%x\n",s32Ret);
//return s32Ret;
}else printf("HI_MPI_VPSS_SetChnAttr success!\n");


if (HI_MPI_VPSS_GetChnMode(VpssGrp,VpssChn,&stOrigVpssMode) != HI_SUCCESS)
{
printf("get mode error!!!\n");
return (HI_VOID *)-1;
}else printf("HI_MPI_VPSS_GetChnMode success!\n");

stVpssMode.enChnMode = VPSS_CHN_MODE_USER;
stVpssMode.enPixelFormat = PIXEL_FORMAT_YUV_SEMIPLANAR_420;
stVpssMode.u32Width = 1280;
stVpssMode.u32Height = 800;

if (HI_MPI_VPSS_SetChnMode(VpssGrp,VpssChn,&stVpssMode) != HI_SUCCESS)
{
printf("set mode error!!!\n");
return (HI_VOID *)-1;
}else printf("HI_MPI_VPSS_SetChnMode success!\n");

if (HI_MPI_VPSS_SetDepth(VpssGrp,VpssChn,u32Depth)!=HI_SUCCESS)
{
printf("set depth error!!!\n");
return (HI_VOID *)-1;
}else printf("HI_MPI_VPSS_SetDepth success!\n");

if (HI_MPI_VPSS_EnableChn(VpssGrp,VpssChn)!=HI_SUCCESS)
{
printf("HI_MPI_VPSS_EnableChn error!!!\n");
return (HI_VOID *)-1;
}else printf("HI_MPI_VPSS_EnableChn success!\n");

if (HI_MPI_VPSS_StartGrp(VpssGrp)!=HI_SUCCESS)
{
printf("HI_MPI_VPSS_StartGrp error!!!\n");
return (HI_VOID *)-1;
}else printf("HI_MPI_VPSS_StartGrp success!\n");

memset(&stFrame,0,sizeof(stFrame));
s32Ret = HI_MPI_VPSS_UserGetFrame(VpssGrp, VpssChn, &stFrame);
while (s32Ret!=HI_SUCCESS)
{
printf("HI_MPI_VPSS_UserGetFrame:get frame error!!!-------------%x\n",s32Ret);
sleep(1);
s32Ret = HI_MPI_VPSS_UserGetFrame(VpssGrp, VpssChn, &stFrame);
}

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-06-16 08:34:18
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31771&ptid=11606]ljh4371 发表于 2016-6-15 17:47[/url]
vpss绑定vi?哪个api?只知道vi需要绑定chn,HI_MPI_VI_ChnBind
知道了,是HI_MPI_SYS_Bind,查了下代码 ...[/quote]

vpss的数据源哪里来呀, VI是数据源, 不把VI和VPSS绑定起来VPSS是没有数据来源的

例子里面很多呀, 比如SAMPLE_COMM_VI_BindVpss()就是

ljh4371

0个粉丝

3

问答

0

专栏

0

资料

ljh4371 2016-06-16 16:31:02
认可0
本帖最后由 ljh4371 于 2016-6-16 16:32 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=31792&ptid=11606]zhuangweiye 发表于 2016-6-16 08:34[/url]
vpss的数据源哪里来呀, VI是数据源, 不把VI和VPSS绑定起来VPSS是没有数据来源的

例子里面很多呀, 比如 ...[/quote]

绑定了,还是老样子……运行到HI_MPI_VPSS_UserGetFrame出错,HI_MPI_VPSS_UserGetFrame :get frame error!!!-------------a008800d
崩溃啊!!!!!!!!!!!!!!!!!!!!!!!
模仿sample_region,把绑定部分代码放在EnableChn之后,代码如下:

if (HI_MPI_VPSS_EnableChn(VpssGrp,VpssChn)!=HI_SUCCESS)
{
        printf("HI_MPI_VPSS_EnableChn error!!!\n");
        return HI_FAILURE;
}else printf("HI_MPI_VPSS_EnableChn success!\n");

if (HI_MPI_VPSS_StartGrp(VpssGrp)!=HI_SUCCESS)
{
        printf("HI_MPI_VPSS_StartGrp error!!!\n");
        return HI_FAILURE;
}else printf("HI_MPI_VPSS_StartGrp success!\n");

/******************************************
    start vpss and vi bind vpss
******************************************/
SAMPLE_VI_MODE_E enViMode = SENSOR_TYPE;
s32Ret = SNAP_VI_BindVpss(enViMode);
if (HI_SUCCESS != s32Ret)
{
        SAMPLE_PRT("Vi bind Vpss failed!----%x\n",s32Ret);
}else printf("SNAP_VI_BindVpss success!\n");

memset(&stFrame,0,sizeof(stFrame));
s32Ret = HI_MPI_VPSS_UserGetFrame(VpssGrp, VpssChn, &stFrame);
while (s32Ret!=HI_SUCCESS)
{
        printf("HI_MPI_VPSS_UserGetFrame:get frame error!!!-------------%x\n",s32Ret);
        sleep(1);
        s32Ret = HI_MPI_VPSS_UserGetFrame(VpssGrp, VpssChn, &stFrame);
}

下面是绑定函数,基本照搬SAMPLE_COMM_VI_BindVpss:
HI_S32 SNAP_VI_BindVpss(SAMPLE_VI_MODE_E enViMode)
{
    HI_S32 j, s32Ret;
    VPSS_GRP VpssGrp;
    MPP_CHN_S stSrcChn;
    MPP_CHN_S stDestChn;
    SAMPLE_VI_PARAM_S stViParam;
    VI_CHN ViChn;

    s32Ret = SNAP_VI_Mode2Param(enViMode, &stViParam);
    if (HI_SUCCESS !=s32Ret)
    {
        SAMPLE_PRT("SNAP_VI_Mode2Param failed!\n");
        return HI_FAILURE;
    }

    VpssGrp = 0;
    for (j=0; j     {
        ViChn = j * stViParam.s32ViChnInterval;

        stSrcChn.enModId = HI_ID_VIU;
        stSrcChn.s32DevId = 0;
        stSrcChn.s32ChnId = ViChn;

        stDestChn.enModId = HI_ID_VPSS;
        stDestChn.s32DevId = VpssGrp;
        stDestChn.s32ChnId = 0;

        s32Ret = HI_MPI_SYS_Bind(&stSrcChn, &stDestChn);
        if (s32Ret != HI_SUCCESS)
        {
            SAMPLE_PRT("HI_MPI_SYS_Bind  failed with %#x!\n", s32Ret);
            return HI_FAILURE;
        }

        VpssGrp ++;
    }
    return HI_SUCCESS;
}

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-06-16 17:29:18
认可0
本帖最后由 zhuangweiye 于 2016-6-16 17:31 编辑

cat /dev/logmpp
看看有什么信息

另外, 原来楼主使用720x576的情况正常吗?

ljh4371

0个粉丝

3

问答

0

专栏

0

资料

ljh4371 2016-06-16 17:37:24
认可0
本帖最后由 ljh4371 于 2016-6-16 17:48 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=31848&ptid=11606]zhuangweiye 发表于 2016-6-16 17:29[/url]
cat /dev/logmpp
看看有什么信息

[/quote]

<3>[  vpss] [Func]:VpssCheckQueryRlt [Line]:1797 [Info]:<3>[  vpss] [grp0 chn0} has no scale cap!
<3>[  vpss] [Func]:VpssCheckQueryRlt [Line]:1799 [Info]:<3>[  vpss] src reso(1100x468), dst reso(1280x800)

用sample_venc可以正常获取jpeg,1280*720,我现在vpss参数设置成了1280*800

是参数的问题?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-06-17 08:01:13
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31849&ptid=11606]ljh4371 发表于 2016-6-16 17:37[/url]
[  vpss] [Func]:VpssCheckQueryRlt [Line]:1797 :[  vpss] [grp0 chn0} has no scale cap!
[  vpss]  ...[/quote]

3518EV100的vpss group 0 channel 0 是没有缩放功能的, VI多大, VPSS的输入输出大小必须设和VI一样的

从log来看, 这个不一致了

ljh4371

0个粉丝

3

问答

0

专栏

0

资料

ljh4371 2016-06-17 14:08:42
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31861&ptid=11606]zhuangweiye 发表于 2016-6-17 08:01[/url]
3518EV100的vpss group 0 channel 0 是没有缩放功能的, VI多大, VPSS的输入输出大小必须设和VI一样的
...[/quote]

那是不是应该把vpss设置为1100*468?我曾经尝试过,还是出现一样的错误……
vi的大小是可以修改的吧?在什么地方修改呢?
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区