@dingxm 可以试试sample_venc,这个是输入TF卡中的YUV文件,输出裸码流,代码流程上会简单一些。
S
StrugglingProgrammer 发布的帖子
-
回复: sample_vi2venc2muxer 在V851S上崩溃
-
回复: sample_vi2venc2muxer 在V851S上崩溃
@dingxm 在make menuconfig里面,进入Development,把 “gdb”和“gdbserver”使能了,应该就OK了。
-
回复: sample_vi2venc2muxer 在V851S上崩溃
@dingxmhan 在sample_vi2venc2muxer.c里面每句AW_MPI_VENC_XXX()函数外面自己加打印,看看最后卡在哪个函数。之后试试注释掉这个函数不调用(一些功能即使不在外部修改,也会有内部默认值的),看看能否顺利跑下去。
-
回复: sample_vi2venc2muxer 在V851S上崩溃
@dingxmhan 在gdb里面敲 thread apply all bt,没进一步的信息显示吗?
-
回复: sample_vi2venc2muxer 在V851S上崩溃
打印出现段错误,可以使用GDB来调试。方法如下:
- 在SDK目录下敲 make menuconfig,在弹出的面板中选择Developement,使能 gdb和gdbserver,然后一路退出保存,重新编译固件打包。
- 打包可能会提示xxx分区空间不足,打包失败,此时进入以下路径
device/config/chips/IC型号/configs/机器型号/linux
打开sys_partition_nor.fex,按把xxx分区的分配空间改成提示的size,再次打包。 - 给机器烧写刚打包生成的新固件。
- 每次运行sample出段错误退出后,在TF卡根目录下,会生成一个名字类似
coredump-xxxxxxxxxxxxxxx的文件。 - 敲入
gdb /xxx/xxxx/sample_vi2venc2muxer
core-file /xxx/xxxx/coredump-xxxxxxxxxxxxxxx
thread apply all bt
此时会显示具体运行出错在哪个源文件的哪一行代码。
敲q退出GDB。