linux - 执行c6accel样本后出现Segmentation fault错误

标签 linux memory arm texas-instruments omap

我使用 OMAP-L138 扩展套件。 首先请查看我的 U-boot 属性。

他们在那里:

U-Boot > printenv
    baudrate=115200
    autoload=no
    bootcmd=run netboot
    bootfile=uImage-da850-omapl138-evm.bin
    filesize=204104
    fileaddr=C0700000
    rootpath=/home/my_name/targetfs
    netboot=tftpboot 0xc0700000 uImage-da850-omapl138-evm.bin; bootm 0xc0700000
    bootargs=console=ttyS2,115200n8 mem=64M root=/dev/nfs rw nfsroot=192.168.1.218:/home/my_name/targetfs ip=192.168.1.231
    netargs=console=ttyS2,115200n8 noinitrd rw mem=64M root=/dev/nfs rw nfsroot=192.168.1.218:/home/my_name/targetfs,nolock ip=192.168.1.231
    stdin=serial
    stdout=serial
    stderr=serial
    ver=U-Boot 2009.11 (Jan 13 2011 - 01:05:37)
    Environment size: 728/65532 bytes

在 DVSDK 的 setup.sh 中,我使用了下一个参数:board memory 64 mb,Linux 内核位置 - TFTP,根文件系统位置 - NFS。 DVSDK制作成功。 我也在 c6accel_1_01_00_07 目录中进行了安装。

root@my_name-desktop:/usr/local/dvsdk/c6accel_1_01_00_07# make install
Creating /home/my_name/targetfs/c6accel_app
Copying kernel modules to target file system: /home/my_name/targetfs/c6accel_app/
Copying cmemk.ko
Copying dsplinkk.ko
Copying c6accel codec servers from /usr/local/dvsdk/c6accel_1_01_00_07
Copying c6accel test app from /usr/local/dvsdk/c6accel_1_01_00_07
Copying testfile from /usr/local/dvsdk/c6accel_1_01_00_07

现在我要执行 C6accel 示例。 所以我重新设定了目标。 哦不,这是什么?

CMEM Range Overlaps Kernel Physical - allowing overlap
CMEM phys_start (0xc2000000) overlaps kernel (0xc0000000 -> 0xc4000000)
CMEMK Error: Failed to request_mem_region(0xc2000000, 18874368)
FATAL: Error inserting cmemk (/lib/modules/2.6.37/kernel/drivers/dsp/cmemk.ko): Bad address

好的。我忽略它并输入登录名。

root@arago:/c6accel_app# ls
benchmarking.txt                 dsplinkk.ko
c6accel_app                      loadmodules_omapl138_c6accel.sh
c6accel_omapl138.x674            test_files
cmemk.ko 

好的!

root@arago:/c6accel_app# ./loadmodules_omapl138_c6accel.sh
    CMEMK module: built on Apr 12 2012 at 17:32:52
      Reference Linux version 2.6.37
      File /usr/local/dvsdk/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
    CMEM Range Overlaps Kernel Physical - allowing overlap
    CMEM phys_start (0xc2000000) overlaps kernel (0xc0000000 -> 0xc4000000)
    CMEMK Error: Failed to request_mem_region(0xc2000000, 18874368)
    FATAL: Error inserting cmemk (/lib/modules/2.6.37/kernel/drivers/dsp/cmemk.ko): Bad address

糟糕! 又是同样的错误!

在文件loadmodules_omapl138_c6accel.sh中我只修改了一个字符串

modprobe cmemk phys_start=0xC2000000 phys_end=0xC3200000 pools=20x4096 allowOverlap=1

所以,最后我有

modprobe cmemk phys_start=0xC4000000 phys_end=0xC5200000 pools=20x4096 allowOverlap=1

已保存。 尝试 2.

root@arago:/c6accel_app# ./loadmodules_omapl138_c6accel.sh
CMEMK module: built on Apr 12 2012 at 17:32:52
  Reference Linux version 2.6.37
  File /usr/local/dvsdk/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
allocated heap buffer 0xc5000000 of size 0x11ec000
cmemk initialized

成功! 然后我运行./c6accel_app

我很高兴看到

Test for Arithmetic RTS functions successful
******************************************************************************
All tests done.
******************************************************************************

libgcc_s.so.1 must be installed for pthread_cancel to work

但是早....

root@arago:/c6accel_app# ls
Segmentation fault 

有东西坏了。它已经完全坏掉了。 在这种情况下我该怎么办?谢谢。

最佳答案

棺材很容易打开....

设备有 64 MB 的 RAM。通过这个命令

bootargs=console=ttyS2,115200n8 mem=64M root=/dev/nfs rw nfsroot=192.168.1.218:/home/my_name/targetfs ip=192.168.1.231

我只是说“好吧,内核,全部拿走。这都是给你的”

所以...我得到了我想要的:32 mb - 用于内核。其他 32 MB 用于 CMEM。没有更多的段错误。

关于linux - 执行c6accel样本后出现Segmentation fault错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10125721/

相关文章:

linux - 如何在 ARM Cortex M3 开发板上运行 Linux?

linux - 在 linux 和 Windows 环境中共享时, Material 设计图标(如 "\f222")会发生变化

linux - 在 debian 上安装 linux-headers 找不到包

python - SWIG C 到 Python 整数数组

c++ - C++ 的数据库访问库

memory - Tomcat 沙箱网络应用程序吗?

c# - C#中的VirtualAlloc分配大内存

java - 复制(不浅也不深)C/C++/Java 等效结构。复制到变量,该变量指向所有成员完全相同的内存

linux - setup_arch() 函数中的内核 panic 问题

image-processing - SIMD 中矢量化直方图的方法?