linux嵌入式开发:nfs 、debug core

#000

   保证开发板,windows主机,linux虚拟机 3者互联互通

   linux虚拟机 ip 192.168.1.100

   windows主机ip 192.168.1.102

   linux开发板 ip 192.168.1.103(eth0) 

#001 NFS调试

   linux虚拟机
   
/etc/exports 文件增加一行 /your/board_rootfs/path/ROOTFS*(rw,sync,no_root_squash)
   
/etc/init.d/nfs restart 重启nfs
服务
   
将编译好的板子程序 app_test,拷贝到/your/board_rootfs/path/ROOTFS/root/

   linux开发板
 
   设置启动参数,不同开发版有差异,重点在紫色和蓝色部分
     
setenv bootargs 'console=ttyS0,115200 root=/dev/nfs rwnfsroot=192.168.1.100:/your/board_rootfs/path/ROOTFSip=192.168.1.103::192.168.1.1:255.255.255.0::eth0:LX_MEM=0x2300000EMAC_MEM=0x100000 DRAM_LEN=0x10000000 LX_MEM2=0BB_ADDR=0xFFFFF00,0MS_GOP0_MIU=0 mtdparts=edb64M-nand:120m(UBI),-(NA)'

   saveenv 

    重启开发板,等待开发板挂载linux虚拟机里的根文件系统,成功后,可以通过SecureCRT等软件登录到开发板
 
    cd /root/
     ./app_test
  
    就可以运行app_test程序,另外可以按需修改开发板的/etc/init.d/rcS文件

#002 程序崩溃产生core文件

   linux开发板
 
   运行app_test前,执行如下指令
     ulimit -c unlimited
     如果程序崩溃没有core文件,可以确认是内核问题。例如mstar的开发板,必须在/application下面执行才生成core文件。程序崩溃后,在app_test同级目录产生Coredump.gz 文件 

   linux虚拟机
 
   gzip -d Coredump.gz (此命令解压Coredump.gz后产生Coredump文件,自动删除掉Coredump.gz)
     /opt/mstar/mips-4.3/bin/mips-linux-gnu-gdb -c Coredump  app_test
     setsolib-search-path/your/board_rootfs/path/ROOTFS/lib
     core-file
     core-fileCoredump
     bt

    就会看到崩溃的堆栈信息

 

你可能感兴趣的:(linux嵌入式开发:nfs 、debug core)