查看: 426|回复: 16

[hi3559/hi3559a] 调试3559a 的时候遇到的问题

[复制链接]
发表于 2019-8-8 09:48:06 | 显示全部楼层 |阅读模式
调试程序时候 经常要ctrl+c  但是有时候可以程序重新运行, 有时候/mnt # [SAMPLE_COMM_SYS_Init]-347: HI_MPI_VB_SetConf failed!   , 就要重新启动。  特别不便于调试程序。 有没有好的方式避免这样。 我在3519v101 上从来都没出现过这个东西。 除非系统直接崩溃,串口都没了。
 楼主| 发表于 2019-8-8 09:50:06 | 显示全部楼层
这样也不是很好使。  怎么办?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2019-8-8 09:59:15 | 显示全部楼层
进程捕捉ctrl+c信号,通过信号处理函数手动释放资源。
 楼主| 发表于 2019-8-8 10:07:24 | 显示全部楼层
stephanooa 发表于 2019-8-8 09:59
进程捕捉ctrl+c信号,通过信号处理函数手动释放资源。

您的意思是
    signal(SIGINT, SAMPLE_VIO_HandleSig);
    signal(SIGTERM, SAMPLE_VIO_HandleSig);
这两个函数吗?
要往这个函数里面添加什么吗?



图片显示程序成功3次。 最后一次ctrl+c 后, 就出现错误了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2019-8-8 10:32:06 | 显示全部楼层
HI_MPI_VB_SetConfig 返回错误码是什么
 楼主| 发表于 2019-8-8 10:57:50 | 显示全部楼层
stephanooa 发表于 2019-8-8 10:32
HI_MPI_VB_SetConfig 返回错误码是什么

[SAMPLE_COMM_SYS_Init]-347: HI_MPI_VB_SetConf failed! 0xa0018012


对比手册   0xA0018012 HI_ERR_VB_BUSY 系统忙
 楼主| 发表于 2019-8-8 10:58:28 | 显示全部楼层
ps
PID   USER     TIME   COMMAND
    1 root       0:02 init
    2 root       0:00 [kthreadd]
    3 root       0:00 [ksoftirqd/0]
    5 root       0:00 [kworker/0:0H]
    6 root       0:00 [kworker/u2:0]
    7 root       0:00 [rcu_sched]
    8 root       0:00 [rcu_bh]
    9 root       0:00 [migration/0]
   10 root       0:00 [lru-add-drain]
   11 root       0:00 [watchdog/0]
   12 root       0:00 [cpuhp/0]
   13 root       0:00 [netns]
  298 root       0:00 [khungtaskd]
  299 root       0:00 [oom_reaper]
  300 root       0:00 [writeback]
  302 root       0:00 [kcompactd0]
  303 root       0:00 [ksmd]
  304 root       0:00 [crypto]
  305 root       0:00 [bioset]
  307 root       0:00 [kblockd]
  356 root       0:00 [spi0]
  360 root       0:00 [spi1]
  361 root       0:00 [kworker/0:1]
  365 root       0:00 [spi2]
  369 root       0:00 [spi3]
  373 root       0:00 [spi4]
  398 root       0:00 [devfreq_wq]
  485 root       0:00 [rpciod]
  486 root       0:00 [xprtiod]
  494 root       0:00 [kswapd0]
  495 root       0:00 [vmstat]
  497 root       0:00 [kworker/u2:2]
  573 root       0:00 [nfsiod]
  656 root       0:00 [bioset]
  657 root       0:00 [bioset]
  658 root       0:00 [bioset]
  659 root       0:00 [bioset]
  660 root       0:00 [bioset]
  661 root       0:00 [bioset]
  662 root       0:00 [bioset]
  663 root       0:00 [bioset]
  664 root       0:00 [bioset]
  665 root       0:00 [bioset]
  666 root       0:00 [bioset]
  667 root       0:00 [bioset]
  668 root       0:00 [bioset]
  669 root       0:00 [bioset]
  670 root       0:00 [bioset]
  671 root       0:00 [bioset]
  705 root       0:00 [bioset]
  708 root       0:00 [bioset]
  711 root       0:00 [bioset]
  714 root       0:00 [bioset]
  717 root       0:00 [bioset]
  720 root       0:00 [bioset]
  723 root       0:00 [bioset]
  726 root       0:00 [bioset]
  817 root       0:00 [irq/43-mmc0]
  819 root       0:00 [irq/44-mmc1]
  821 root       0:00 [irq/45-mmc2]
  822 root       0:00 [kworker/0:2]
  844 root       0:00 [ipv6_addrconf]
  854 root       0:00 [bioset]
  855 root       0:00 [mmcqd/0]
  856 root       0:00 [bioset]
  857 root       0:00 [mmcqd/0boot0]
  858 root       0:00 [bioset]
  859 root       0:00 [mmcqd/0boot1]
  860 root       0:00 [bioset]
  861 root       0:00 [mmcqd/0rpmb]
  873 root       0:00 [jbd2/mmcblk0p3-]
  874 root       0:00 [ext4-rsv-conver]
  889 root       0:00 udevd --daemon
1098 root       0:00 udevd --daemon
1099 root       0:00 udevd --daemon
1330 root       0:00 -sh
1562 root       0:02 [ipcm-recv]
1563 root       0:00 [ipcm-discovery]
1672 root       0:00 [kworker/0:1H]
1677 root       0:00 [HI_HDMI_kThread]
1733 root       0:00 [kworker/0:0]
1759 root       0:00 ps
发表于 2019-8-8 13:38:45 | 显示全部楼层
cat /proc/media-mem ,比对没跑过程序和退出程序两次有哪些模块的mmb没有释放,检查应用程序的去初始化动作是否完善(比如创建的通道是不是都销毁了,打开的设备是不是都关闭了)。
 楼主| 发表于 2019-8-8 14:25:19 | 显示全部楼层
本帖最后由 alaode 于 2019-8-8 14:29 编辑
stephanooa 发表于 2019-8-8 13:38
cat /proc/media-mem ,比对没跑过程序和退出程序两次有哪些模块的mmb没有释放,检查应用程序的去初始化动 ...


谢谢你。 打印在下面, 剩下的我研究一下。

运行后的:

/mnt # cat /proc/media-mem
+---ZONE: PHYS(0x64000000, 0xA27FFFFF), GFP=0, nBYTES=1024000KB,    NAME="anonymous"
   |-MMB: phys(0x64000000, 0x6400BFFF), kvirt=0x(null), flags=0x00000000, length=48KB,    name="sys_scale_coef"
   |-MMB: phys(0x6400C000, 0x64017FFF), kvirt=0x(null), flags=0x00000000, length=48KB,    name="sys_defscl_coef"
   |-MMB: phys(0x64018000, 0x64037FFF), kvirt=0x(null), flags=0x00000000, length=128KB,    name="TDE_MEMPOOL_MMB"
   |-MMB: phys(0x647F8000, 0x6679BFFF), kvirt=0x(null), flags=0x00000000, length=32400KB,    name="hifb_layer0"
   |-MMB: phys(0x6679C000, 0x6776DFFF), kvirt=0x(null), flags=0x00000000, length=16200KB,    name="hifb_layer1"
   |-MMB: phys(0x6776E000, 0x677ADFFF), kvirt=0x(null), flags=0x00000000, length=256KB,    name="hifb_layer2"
   |-MMB: phys(0x6D308000, 0x71D30FFF), kvirt=0x(null), flags=0x00000000, length=75940KB,    name="VbPool"
   |-MMB: phys(0x71D31000, 0x71D32FFF), kvirt=0x(null), flags=0x00000000, length=8KB,    name="vb_supp0"

---MMZ_USE_INFO:
total size=1024000KB(1000MB),used=125028KB(122MB + 100KB),remain=898972KB(877MB + 924KB),zone_number=1,block_number=8



运行前的:


~ # cat /proc/media-mem
+---ZONE: PHYS(0x64000000, 0xA27FFFFF), GFP=0, nBYTES=1024000KB,    NAME="anonymous"
   |-MMB: phys(0x64000000, 0x6400BFFF), kvirt=0x(null), flags=0x00000000, length=48KB,    name="sys_scale_coef"
   |-MMB: phys(0x6400C000, 0x64017FFF), kvirt=0x(null), flags=0x00000000, length=48KB,    name="sys_defscl_coef"
   |-MMB: phys(0x64018000, 0x64037FFF), kvirt=0x(null), flags=0x00000000, length=128KB,    name="TDE_MEMPOOL_MMB"
   |-MMB: phys(0x64038000, 0x64088FFF), kvirt=0x(null), flags=0x00000000, length=324KB,    name="GDC_NodeBuf"
   |-MMB: phys(0x64089000, 0x641ACFFF), kvirt=0x(null), flags=0x00000000, length=1168KB,    name="VGS_NodeBuf"
   |-MMB: phys(0x641AD000, 0x645EDFFF), kvirt=0x(null), flags=0x00000000, length=4356KB,    name="VGS_HdrBuf"
   |-MMB: phys(0x645EE000, 0x6460EFFF), kvirt=0x(null), flags=0x00000000, length=132KB,    name="DIS_NodeBuf"
   |-MMB: phys(0x6460F000, 0x647F7FFF), kvirt=0x(null), flags=0x00000000, length=1956KB,    name="VO0CoefBuf"
   |-MMB: phys(0x647F8000, 0x6679BFFF), kvirt=0x(null), flags=0x00000000, length=32400KB,    name="hifb_layer0"
   |-MMB: phys(0x6679C000, 0x6776DFFF), kvirt=0x(null), flags=0x00000000, length=16200KB,    name="hifb_layer1"
   |-MMB: phys(0x6776E000, 0x677ADFFF), kvirt=0x(null), flags=0x00000000, length=256KB,    name="hifb_layer2"
   |-MMB: phys(0x677AE000, 0x6782DFFF), kvirt=0x(null), flags=0x00000000, length=512KB,    name="Jpegd0_emar"
   |-MMB: phys(0x6782E000, 0x67862FFF), kvirt=0x(null), flags=0x00000000, length=212KB,    name="IVE_QUEUE"
   |-MMB: phys(0x67863000, 0x67863FFF), kvirt=0x(null), flags=0x00000000, length=4KB,    name="IVE_TEMP_NODE"
   |-MMB: phys(0x67864000, 0x67883FFF), kvirt=0x(null), flags=0x00000000, length=128KB,    name="SVP_NNIE_QUEUE"
   |-MMB: phys(0x67884000, 0x6788AFFF), kvirt=0x(null), flags=0x00000000, length=28KB,    name="SVP_NNIE_MODLE_"

---MMZ_USE_INFO:
total size=1024000KB(1000MB),used=57900KB(56MB + 556KB),remain=966100KB(943MB + 468KB),zone_number=1,block_number=16

 楼主| 发表于 2019-8-8 14:32:22 | 显示全部楼层
stephanooa 发表于 2019-8-8 13:38
cat /proc/media-mem ,比对没跑过程序和退出程序两次有哪些模块的mmb没有释放,检查应用程序的去初始化动 ...


还是不会分析,并且不知道在哪里释放。  我的程序见
http://bbs.ebaina.com/forum.php? ... &extra=page%3D1
 楼主| 发表于 2019-8-8 14:36:52 | 显示全部楼层
stephanooa 发表于 2019-8-8 13:38
cat /proc/media-mem ,比对没跑过程序和退出程序两次有哪些模块的mmb没有释放,检查应用程序的去初始化动 ...


然后 发现还可以运行, 到最后不能运行 的 倒数第二次 和最后一次的
+---ZONE: PHYS(0x64000000, 0xA27FFFFF), GFP=0, nBYTES=1024000KB,    NAME="anonymous"
   |-MMB: phys(0x64000000, 0x6400BFFF), kvirt=0x (null), flags=0x00000000, length=48KB,    name="sys_scale_coef"
   |-MMB: phys(0x6400C000, 0x64017FFF), kvirt=0x (null), flags=0x00000000, length=48KB,    name="sys_defscl_coef"
   |-MMB: phys(0x64018000, 0x64037FFF), kvirt=0x  (null), flags=0x00000000, length=128KB,    name="TDE_MEMPOOL_MMB"
   |-MMB: phys(0x6403B000, 0x6403CFFF), kvirt=0x  (null), flags=0x00000000, length=8KB,    name="vb_supp0"
   |-MMB: phys(0x647F8000, 0x6679BFFF), kvirt=0x  (null), flags=0x00000000, length=32400KB,    name="hifb_layer0"
   |-MMB: phys(0x6679C000, 0x6776DFFF), kvirt=0x (null), flags=0x00000000, length=16200KB,    name="hifb_layer1"
   |-MMB: phys(0x6776E000, 0x677ADFFF), kvirt=0x  (null), flags=0x00000000, length=256KB,    name="hifb_layer2"
   |-MMB: phys(0x6D228000, 0x71C50FFF), kvirt=0x  (null), flags=0x00000000, length=75940KB,    name="VbPool"

---MMZ_USE_INFO:
total size=1024000KB(1000MB),used=125028KB(122MB + 100KB),remain=898972KB(877MB + 924KB),zone_number=1,block_number=8




/mnt # cat /proc/media-mem
+---ZONE: PHYS(0x64000000, 0xA27FFFFF), GFP=0, nBYTES=1024000KB,    NAME="anonymous"
   |-MMB: phys(0x64000000, 0x6400BFFF), kvirt=0x (null), flags=0x00000000, length=48KB,    name="sys_scale_coef"
   |-MMB: phys(0x6400C000, 0x64017FFF), kvirt=0x (null), flags=0x00000000, length=48KB,    name="sys_defscl_coef"
   |-MMB: phys(0x64018000, 0x64037FFF), kvirt=0x  (null), flags=0x00000000, length=128KB,    name="TDE_MEMPOOL_MMB"
   |-MMB: phys(0x6403B000, 0x6403CFFF), kvirt=0x (null), flags=0x00000000, length=8KB,    name="vb_supp0"
   |-MMB: phys(0x647F8000, 0x6679BFFF), kvirt=0x(null), flags=0x00000000, length=32400KB,    name="hifb_layer0"
   |-MMB: phys(0x6679C000, 0x6776DFFF), kvirt=0x (null), flags=0x00000000, length=16200KB,    name="hifb_layer1"
   |-MMB: phys(0x6776E000, 0x677ADFFF), kvirt=0x (null), flags=0x00000000, length=256KB,    name="hifb_layer2"
   |-MMB: phys(0x6D228000, 0x71C50FFF), kvirt=0x (null), flags=0x00000000, length=75940KB,    name="VbPool"
---MMZ_USE_INFO:
total size=1024000KB(1000MB),used=125028KB(122MB + 100KB),remain=898972KB(877MB + 924KB),zone_number=1,block_number=8
 楼主| 发表于 2019-8-8 14:40:02 | 显示全部楼层
参数是完全一样的。  现在我是multi 单核a53 运行/  os 给了512M
ko文件里的面的分配。   原来怕内存没有4g, 最后分了1000M,怕出问题这样做的。

#DDR start:0x40000000,  DSP(64M);  kernel start:0x44000000,  OS(512M); MMZ start:0x64000000
mmz_start=0x64000000;         # mmz start addr
mmz_size=1000M;               # 3520M, mmz size

发表于 2019-8-8 16:20:52 | 显示全部楼层
alaode 发表于 2019-8-8 10:07
您的意思是
    signal(SIGINT, SAMPLE_VIO_HandleSig);
    signal(SIGTERM, SAMPLE_VIO_HandleSig);
...

你可以参考/mpp/sample/vio
  1. void SAMPLE_VIO_HandleSig(HI_S32 signo)
  2. {
  3.     if (SIGINT == signo || SIGTERM == signo)
  4.     {
  5.         SAMPLE_COMM_All_ISP_Stop();
  6.         SAMPLE_COMM_SYS_Exit();
  7.         printf("\033[0;31mprogram termination abnormally!\033[0;39m\n");
  8.     }
  9.     exit(-1);
  10. }

  11. int main(int argc, char* argv[])
  12. {


  13.     signal(SIGINT, SAMPLE_VIO_HandleSig);
  14.     signal(SIGTERM, SAMPLE_VIO_HandleSig);


  15. }
复制代码
 楼主| 发表于 2019-8-9 08:39:41 | 显示全部楼层
本帖最后由 alaode 于 2019-8-9 09:04 编辑
qn1534489079 发表于 2019-8-8 16:20
你可以参考/mpp/sample/vio


您好, 是有这个的。  我就是在vio 上修改的。 这个地方没有动。
 楼主| 发表于 2019-8-9 16:22:48 | 显示全部楼层
本帖最后由 alaode 于 2019-8-9 16:27 编辑

如何@ zhuang啊 ???  zhuang  大神那  求教!!!!!!!  板子是 淘宝的3559a 开发板,版本应该不是20.     这个版本是老板给的,  我移植新的版本和新的摄像头没图像, 这个版本有。 没办法, sdk被改名了 没找到相关的版本,所以也不知道什么版本。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

© 2008-2017 当前位置 易百纳技术社区论坛 返回 易百纳技术社区 ( 苏ICP备14036084 )   Powered by Discuz! X3.1
快速回复 返回顶部 返回列表